Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit StrToFloat
Hendi48 - Do 04.10.07 16:34
Titel: Problem mit StrToFloat
Hi,
ich möchte gerne mit einer Kommazahl rechnen (z.B. 10.97). Dazu habe ich ein Extended deklariert und mit StrToFloat versucht den String (10.97) darein zu tun, aber es kommt immer "'10.97' is not a valid floating point value". Ich habe schon versucht den Punkt durch ein Komma zu ersetzten und hab auch schon DezimalSeparator auf Punkt gesetzt, aber es geht immer noch nicht. Was mach ich denn falsch?
Critter - Do 04.10.07 16:46
Hallo,
hast du vielleicht noch leerzeichen oder Zeilenumbrüche in deinem String?
critter
Hendi48 - Do 04.10.07 16:51
Nein, wenn ich StrToFloat('10.97'); mach geht es auch nicht.
Allesquarks - Do 04.10.07 17:09
probiers mal mit komma statt punkt das sollte man auch global regeln können über decimalseperator was da verwendet wird
Grüße
Hendi48 - Do 04.10.07 17:22
Ich hab es ja oben schon geschrieben dass ich das probiert hab - es geht nicht =(
Allesquarks - Do 04.10.07 17:24
oh hatt ich überlesen aber versuchs doch trotzdem mal mit komma vielleicht liegts ja daran dass das Setzen des Seperators nicht funktioniert
GTA-Place - Do 04.10.07 17:34
Hat er doch auch schon. Bitte aufmerksam lesen ;-)
bushwalkbackflip - Do 04.10.07 22:10
also StrToFloat('10,97'); funktioniert bei mir. habe einfach ein neues projekt erstellt und das in die formcreate reingeschrieben -> funktioniert. bei nem punkt gab es ne fehlermeldung. ich meine, noch im kopf zu haben, dass wir in der schule immer StrToFloatF benutzt haben... bin mir aber nicht mehr so ganz sicher. ansonsten würd ich an deiner stelle einfach mal die hilfe fragen ;)
jaenicke - Do 04.10.07 22:39
Wie wäre es mit einem Beispielcode, der bei dir nicht geht? Insbesondere mit dem Versuch, den Separator zu ersetzen? Weil bei mir gibts da keine Probleme, deshalb würde ich das gerne mal mit deinem Code bzw. deiner Exe testen. Vielleicht liegts ja an deinen Systemeinstellungen.
Arne Danikowski - Do 04.10.07 23:25
Hast Du mal versucht den wert vorher in eine Variable zu schreiben?
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var zahl1,zahl2:String
begin Zahl1=:=0.8 Zahl2:=StrToFloat(Zahl1); end |
das funzt 100 pro
und
Delphi-Quelltext
1: 2: 3:
| Var zahl1:String; begin Zahl1:=1.93; |
geht auch, da brauch ich kein StrToFloat
jaenicke - Do 04.10.07 23:32
Arne Danikowski hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var zahl1,zahl2:String
begin Zahl1=:=0.8 Zahl2:=StrToFloat(Zahl1); end |
das funzt 100 pro |
Wie das?
Erste Zeile: 0.8 ist ein Fließkommawert, Zahl1 ein String...
Zweite Zeile: StrToFloat gibt einen Fließkommawert, Zahl2 ist ein String...
Arne Danikowski hat folgendes geschrieben: |
und
Delphi-Quelltext 1: 2: 3:
| Var zahl1:String; begin Zahl1:=1.93; |
geht auch, da brauch ich kein StrToFloat |
Zahl1 ist ein String, 1.93 ein Fließkommawert...
Arne Danikowski - Fr 05.10.07 11:48
Ops mein Fehler kein String sind natürlich Single
richtig muss es heissen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var zahl1:Single; zahl2:String;
begin Zahl1=:=0.8 zahl2:=FloatToStrF(Zahl1, ffnumber, 7,2); edit1.text:=zahl2; end |
da hab ich net aufgepasst :(
Hendi48 - Fr 05.10.07 14:50
Ah, ich hab den Fehler gefunden...es war noch ein Tab an der Value dran, das sah man aber weder in der Fehlermeldung, noch wenn man es in einer ListBox anzeigen lässt. Erst als ich die ListBox in eine Datei gespeichert hab war das Tab sichtbar. Ohne das geht's jetzt!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!