Seite 1 von 1
Probleme mit ValF() und ValD()
Verfasst: 01.09.2013 00:44
von SBond
Folgendes Problem:
Code: Alles auswählen
sTestWert.s = "65.4321"
fBreitengrad_DezMinuten.f = ValF(sTestWert)
Debug fBreitengrad_DezMinuten ; Gibt 65.43209838867188 aus
wie kann ich dafür sorgen, dass die Werte korrekt konvertiert werden? Auch bei kürzeren Zahlen (z.B 10.23) und ValD() tritt das Problem auf.
Kennt jemand eine Lösung?
Re: Probleme mit ValF() und ValD()
Verfasst: 01.09.2013 01:56
von STARGÅTE
Alle Jahre wieder:
Gleitkommazahl
Es gibt die Zahl 65.4321 oder 10.23 in der Fließkommadarstellung nicht, daher kann sie auch nicht dargestellt werden.
Es ist kein Fehler, wenn stattdessen 65.43209838867188 angezeigt wird, weil es die am nächsten liegenste Zahl ist.
ValD() zusammen mit Doubles kann das Problem sehrwohl verbessern, jedoch nie ganz beseitigen.
Code: Alles auswählen
sTestWert.s = "65.4321"
fBreitengrad_DezMinuten.d = ValD(sTestWert)
Debug fBreitengrad_DezMinuten
Ansonsten gilt für (z.B. Währungen) Ganzzahlen zu nutzen (Integer/Quad) und diese erst "zum Schluss" mit einem Komma versehen.
Re: Probleme mit ValF() und ValD()
Verfasst: 01.09.2013 02:06
von SBond
ok, ich danke dir.
Es hat mich verwundert, da es in der PureBasic Hilfe ein Beispiel gibt:
...jedoch kommt da 10,2399... raus.
Ich dachte es läge an irgendwelchen Definitionen, Parametern oder Einstellungen. Dem ist ja dann nicht so.
nochmals Danke
Re: Probleme mit ValF() und ValD()
Verfasst: 01.09.2013 21:56
von NicTheQuick
Man kann mit StrF bzw. StrD dafür sorgen ab welcher Nachkommastelle gerundet werden soll. Dann wird auch das richtige angezeigt.