![]() |
Probleme mit StrToFloatDev + if-Abfrage
Moin zusammen!
Erstmal ein dickes Lob an das Forum. Bin noch recht neu in der Delphi-Programmierung und das Forum ist echt eine große Hilfe. :) Zu meinem Problem: Ich hab die folgende Funktion mit zwei Strings als Parameter, die ich jeweils in Double umwandeln möchte. Sollte dies nicht möglich sein, so bekommt die jeweilige Double-Variable eine Gleitkommazahl mit einer Länge zugewiesen, die die maximal mögliche Länge des übergebenen Strings übersteigt. So weit, so gut. Aber irgendwas stimmt mit meiner if-Abfrage nicht: Denn wenn ich z.B. Buchstaben übergebe erhalten die Double-Variablen zwar korrekt diese 0.00000000000009, aber ich komme trotzdem nicht in den if-Block, sondern in den else-Block. Also wo ist mein Denkfehler? :gruebel:
Delphi-Quellcode:
function TCalcControl.getResult(inSValue1, inSValue2: String): String;
var lDValue1, lDValue2: Double; begin lDValue1 := StrToFloatDef(inSValue1, 0.00000000000009); lDValue2 := StrToFloatDef(inSValue2, 0.00000000000009); if ((lDValue1 = 0.00000000000009) or (lDValue2 = 0.00000000000009)) then result := 'Bitte nur Zahlen eingeben!' else [...] end; |
Re: Probleme mit StrToFloatDev + if-Abfrage
Hallo,
die Zahlen werden intern immer binär darstellt. Es kann also sein das 0.00000009 nicht so exakt dargestellt werden können. Was Du machen kannst ist auf value <=0.0000009 zu prüfen. Grüße Klaus |
Re: Probleme mit StrToFloatDev + if-Abfrage
Benutze
![]() |
Re: Probleme mit StrToFloatDev + if-Abfrage
Zitat:
value <= 0.0000009 wär nicht gegangen, da ich ggf. auch eine 0 eingeben möchte! ;) Zitat:
Danke euch beiden. Schönes Wochenende! :thumb: |
Re: Probleme mit StrToFloatDev + if-Abfrage
Für den Vergleich gebrochener Zahlen oder DateTime
solltest du dir mal folgende Funktionen ansehen:
Delphi-Quellcode:
alexfunction SameValue() function IsZero() function CompareValue() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz