Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Konvertierungsproblem
surroundedx - Mi 13.09.06 23:48
Titel: Konvertierungsproblem
hi ich nochmal
ich hab ein kleines konvertierungsproblem:
Delphi-Quelltext
1: 2: 3: 4: 5:
| for m:=1 to sg.RowCount-2 do begin 112: cl:=sg.cells[1,m]; 113: add:=add+floattostr(cl); end; |
[Fehler] temp.pas(113): Es gibt keine überladene Version von 'FloatToStr', die man mit diesen Argumenten aufrufen kann
warum ist das falsch, die zahlen in der spalte sind alle im "xx.xx" format! für schnelle hilfe bin ich sehr dankbar!
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
JayEff - Mi 13.09.06 23:59
Ähm könntest du bitte Delphitags benutzen? dann sieht das ganze so aus:
surroundedx hat folgendes geschrieben: |
Delphi-Quelltext 110: 111: 112: 113: 114:
| { ... } for m:=1 to sg.RowCount-2 do begin cl:=sg.cells[1,m]; add:=add+floattostr(cl); end; |
|
Ausserdem wär etwas mehr code bzw. informationen hilfreich: was sind cl, sg, add für Variablen/Komponenten?
Meine Kristallkugel verrät, dass add ein Float und cl ein String ist, während sg ein StringGrid ist. In diesem Fall hast du wohl einfach FloatToStr mit StrToFloat verwechselt.
surroundedx - Do 14.09.06 00:05
entschuldige! ich hab das verwechselt richtig .. verdammt
ok, aber er meldet dann anhand eines MsgBox fehlers, das die zahl '12.3' kein gültiger Floatkommazahl ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.BitBtn2Click(Sender: TObject); var mit, add: real; var m: integer; var cl: string; begin for m:=1 to sg.RowCount-2 do begin cl:=sg.cells[1,m]; add:=add+StrToFloat(cl); end; end; |
richtig, sg=stringgrid, die spalte 1, enthälte zahlen wie "9.7" "17.6" etc, diese will ich bloß addieren.. aber wieso fungiert das nicht korrekt, für mich ist das eine gültige fließkommazahl.
JayEff - Do 14.09.06 00:11
JayEff hat folgendes geschrieben: |
Ähm könntest du bitte Delphitags benutzen? |
Nochmal mach ich das nich für dich! benutz den

-Knopf, bitte.
Delphitags:
<span class="inlineSyntax"><span class="codecomment">{PROTECTTAGa45a853cf0db59575224eb1647f3e953}</span></span> So musst du das machen.
Zum Problem: Hast du mal versucht, den Punkt . mit einem Komma , zu ersetzen? In Delphi musst du den englischen Dezimalseperator benutzen ( . ) während es in deinem fertigen Programm IIRC Systemabhängig ist. Überprüf also, ob sich die Umwandlung durchführen lässt, und wenn nicht, ersetze den Punkt mit einem Komma bzw umgekehrt.
zuma - Do 14.09.06 07:59
surroundedx hat folgendes geschrieben: |
entschuldige! ich hab das verwechselt richtig .. verdammt
ok, aber er meldet dann anhand eines MsgBox fehlers, das die zahl '12.3' kein gültiger Floatkommazahl ist.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.BitBtn2Click(Sender: TObject); var mit, add: real; var m: integer; var cl: string; begin for m:=1 to sg.RowCount-2 do begin cl:=sg.cells[1,m]; add:=add+StrToFloat(cl); end; end; |
richtig, sg=stringgrid, die spalte 1, enthälte zahlen wie "9.7" "17.6" etc, diese will ich bloß addieren.. aber wieso fungiert das nicht korrekt, für mich ist das eine gültige fließkommazahl. |
benutze einfach
Delphi-Quelltext
1:
| add := add + StrToFloat(StringReplace(c1,',','.',[])); |
JayEff - Do 14.09.06 17:14
zuma hat folgendes geschrieben: |
benutze einfach
Delphi-Quelltext 1:
| add := add + StrToFloat(StringReplace(c1,',','.',[])); | |
Also genau das, was ich geschrieben hab, nur in Code gefasst ;) (Wir machen normalerweise nicht anderer Leute Hausaufgaben ;) sondern geben Tipps und Informationen.)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!