![]() |
Umwandlung String in Double
Hallo !
Ich hab ein Problem,daß ich möglichst schnell lösen möchte. Ich muß eine Spalte einer Tabelle aufsummieren, deren Werte in Stringform vorliegen. Ich möchte nin die Strings in Realgrößen (Double) umwandeln und aufsummieren.Will bei mir nicht funktionieren. Wie kann ich das möglichst einfach realisieren ? MfG allarich |
Re: Umwandlung String in Double
|
Re: Umwandlung String in Double
Die Funktion StrToFloat sollte da helfen.
|
Re: Umwandlung String in Double
Hallo Freunde,
habe ich schon probiert.Hat aber nicht geklappt. Vielleicht ein Fehler von mir ? Habe folgende source verwendet:
Delphi-Quellcode:
Wer sieht hier wo einen Fehler ?
var
i: Integer; Z1: string; Ergebnis: Double; begin Ergebnis:= 0; i:= 0; REPEAT i:= i + 1; Z1:= ws.Cells.Item[i]; Ergebnis:=Ergebnis + StrToFloat(Z1); end; UNTIL Z1 = '' end; MfG allarich [edit=Sharky]Delphi-Tags gesetzt und den Code etwas formatiert ;-) Mfg, Sharky[/edit] |
Re: Umwandlung String in Double
Hallo,
Du hast da ein end zuviel. So wird es gar nicht kompilieren. Außerdem solltest du vor dem StrToFloat sicherstellen, das Z1 kein Leerstring ist, oder am Besten gleich ![]()
Delphi-Quellcode:
grüße, daniel
var
i: Integer; Z1: string; Ergebnis: Double; begin Ergebnis:= 0; i:= 0; REPEAT i:= i + 1; Z1:= ws.Cells.Item[i]; Ergebnis:=Ergebnis + StrToFloat(Z1); end; <--- das ist zuviel UNTIL Z1 = '' end; |
Re: Umwandlung String in Double
Hallo Sanchez,
Du hast natürlich recht. Ich habe das begin nach REPEAT vergessen ! Habe aber noch ne andere Frage,vielleicht kannst Du mir hier auch helfen. Wie frage ich programmtechnisch ab, ob ein Workbook schon geöffnet ist ? MfG allarich |
Re: Umwandlung String in Double
Ich fürchte, da kann ich dir nicht helfen. Ich hab nämlich keine Ahnung, was ein Workbook ist.
|
Re: Umwandlung String in Double
Denk daran, dass Delphi ein . als Dezimaltrenner erwartet. Ein Komma wird nicht akzeptiert. Generell darf bei StrToFloat der String nicht Formatiert sein (also zum Beispiel keine führenden Leerzeichen oder Tausendertrennzeichen).
|
Re: Umwandlung String in Double
Zitat:
Zitat:
|
Re: Umwandlung String in Double
Zitat:
|
Re: Umwandlung String in Double
Hallo Luckie,
schon längst erfolgt ! Gruß allarich |
Re: Umwandlung String in Double
Hi!
Mal so als Frage zu begin -- end: Ist es nicht so, dass es bei repeat-Schleifen gar nicht stehen muss? Ciao Frederic |
Re: Umwandlung String in Double
Ja, das stimmt.
Das Ende der Repeat-Schleife wird ja durch das until... gekennzeichnet. |
Re: Umwandlung String in Double
Zu . und , :
In der IDE wird für konstante Zahlenwerte nur der . akzeptiert. Für die Umwandlungsfunktionen ist die Einstellung des DecimalSeparators maßgebend! Das sind 2 unterschiedliche Dinge, die so erstmal nichts miteinander zu tun haben. (Der DecimalSeparator ist auf deutschen Systemen defaultmäßig idR ',') Gruss, Fabian |
Re: Umwandlung String in Double
Ansonsten gäbe es auch große Probleme bei der Übergabe von zwei Zahlen als Parameter einer Funktion. Die werden nämlich mit Komma getrennt. Da würder Compiler doch erhebliche Probleme bekommen.
Beispiel: Berechne (5,34, 78,44); Woher sollte der Compiler wissen welches die erste Zahl und welches die zweite ist. Daher: Berechne (5.34, 78.44); So ist wieder alles hübsch einfach. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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