Seite 2 von 2

Re: Umwandlung eines Strings in eine Zahl

Verfasst: 08.06.2012 12:50
von Andreas21
c4s hat geschrieben:Das seltsame Verhalten der Nachkommastellen gehört nun mal zu den Fließkommazahlen (in PureBasic Float bzw. Double). Mehr Informationen dazu sollten sich im Web, der PB-Hilfe oder dem Forum finden lassen.

Code: Alles auswählen

Debug ValF("1.2", 2)
ValF()

Syntax

Ergebnis.f = ValF(String$)
Beschreibung

Wandelt einen String in eine Fließkomma-Zahl um. Der String muss ein Fließkomma-Wert im Dezimalformat sein. Das Parsen (Suchen) nach Zahlen stoppt beim ersten nicht numerischen Zeichen.

Hinweis: Strings mit einer enthaltenen Ganzzahl können auch mit Val() und 64 Bit-Fließkommazahlen mit ValD() (mit höherer Genauigkeit als ValF()) konvertiert werden.
Beispiel

Debug ValF("10.24") ; wird 10.24 ausgeben

Unterstützte OS

Alle

Re: Umwandlung eines Strings in eine Zahl

Verfasst: 12.06.2012 23:12
von Daffy0815
Tja, genau aus diesem Grund habe ich mir bei meinem Mikrocontroller-Basic eine BCD-Arithmetik in Assembler geschrieben.
Da gibt es diese Probleme systembedingt nicht.

Gruß

Daffy

Re: Umwandlung eines Strings in eine Zahl

Verfasst: 13.06.2012 13:03
von NicknameFJ
Daffy0815 hat geschrieben:(...) BCD-Arithmetik in Assembler geschrieben. Da gibt es diese Probleme systembedingt nicht.
Was bringt BCD für Vorteile im Vergleich zur Nutzung von Integer?

Grüße NicknameFJ

Re: Umwandlung eines Strings in eine Zahl

Verfasst: 13.06.2012 13:33
von NicTheQuick
Du kannst nicht BCD und Integer vergleichen. Aber mit BCD kannst du Integer kodieren. So machen es üblicherweise auch Taschenrechner. Einfach mal den wiki-Artikel unter BCD-Code lesen. Dann muss man hier nicht nochmal alles erklären.

Re: Umwandlung eines Strings in eine Zahl

Verfasst: 13.06.2012 14:59
von NicknameFJ
Danke NictheQuick,

aber was BCD ist war mir schon klar. Die Nachteile waren mir auch klar, höherer Speicherbrauch und langsamer.

Aber was für Vorteile bringt das im Vergleich zu Integer.

Das konnte ich dem Wiki Artikel nicht entnehmen, vielleicht bin ich aber auch nur betriebsblind.


Grüße

NicknameFJ

Re: Umwandlung eines Strings in eine Zahl

Verfasst: 13.06.2012 15:05
von NicTheQuick
Bei Integern bringt dir die BCD-Kodierung keine Vorteile, bei Floats allerdings schon, da damit gewährleistet wird, dass 10.42 auch nach Speichern und wieder Laden immer noch 10.42 und nicht 10.420000000019852 oder ähnliches.

Re: Umwandlung eines Strings in eine Zahl

Verfasst: 13.06.2012 19:44
von DarkDragon
Noch eine kleine Nebenbemerkung (kennt vielleicht nicht jeder): http://www.math.uni-konstanz.de/numerik ... eratur.php => "Numerisches Rechnen" unter "Verknupfung von Gleitkommazahlen" steht
Die Subtraktion zweier ungefahr gleich großer Zahlen ist numerisch instabil: kleine Fehler in den Summanden konnen zu einem großen Fehler im Ergebnis führen