![]() |
Delphi-Version: 7
FloatToStr problem wegen punkt als 1.000er markierung
Hi, kann mir jemand sagen wie ich meine dezimalzahlen formatieren muss (zb. FloatToStrF ???)
damit sie nicht mit einem punkt in eine variable übernommen und ausgegeben werden? weil delphi bei der weiteren verwendung dieser variablen meckert dass es keine gültig gleitkommazahl sei. Bsp: also nicht so: 1.523,7 sondern so: 1523,7 :shock: Kann mir da jemand helfen? schonmal vielen dank! |
AW: FloatToStr problem wegen punkt als 1.000er markierung
Delphi-Quellcode:
StrToFloat(StringReplace('1.523,7 ' ,ThousandSeparator, '', [rfReplaceAll]))
|
AW: FloatToStr problem wegen punkt als 1.000er markierung
schonmal danke, bei der ausgabe der zahl funktioniert das schonmal.
nur wie bringe ich ihm bei dass er von anfang an keine punkte in die variable mit hineinspeichern soll?
Delphi-Quellcode:
p2[a] := FloatToStrF(StrToInt(p1[a]) * StrToFloat(v2[a])...usw ,ffNumber,8,2 );
|
AW: FloatToStr problem wegen punkt als 1.000er markierung
Wofür soll denn diese Umwandlungsorgie gut sein?
|
AW: FloatToStr problem wegen punkt als 1.000er markierung
was denn für eine umwandlungsorgie :cyclops: ???
ich hab ne array-variable die über eine formel ihren wert bekommt der oftmals über 999 liegt. diese soll einmal OHNE 1000er-Punkt ausgegeben und angezeigt werden. das funktioniert ja bereits. die frage ist jetzt nurnoch ob und wenn ja, wie ich direkt vereinbaren kann das der wert von anfang an ohne punkt gespeichert wird, damit ich mit dieser variablen an anderer stelle weiterrechnen kann ! PS: die fragen nach dem warum spielt doch eigentlich garkeine Rolle |
AW: FloatToStr problem wegen punkt als 1.000er markierung
Einen Wert in einen String umzuwandeln und umgekehrt macht nur Sinn bei der Ein- oder Ausgabe.
Hier sieht es aber so aus, als ob diese Umwandlung auch für/im Berechnungsteil erfolgt. Das wäre dann ein Designfehler. Es ist aber nicht wirklich ersichtlich, somit ist die Frage nach dem Warum durchaus berechtigt. Nicht umsonst gilt der goldene Grundsatz: "Trenne Anzeige und Code" |
AW: FloatToStr problem wegen punkt als 1.000er markierung
mag sein, das löst aber mien problem bisher nicht!
wie speichere ich meine variable OHNE punkt? |
AW: FloatToStr problem wegen punkt als 1.000er markierung
hab jetzt mal paar min über deine letzte aussage gegrübelt.
es sit tatsächlich so, dass ich des öfteren meine variablen in der berechnung umwandele.... und dann später das ergebnis weil ich es an anderer stelle wieder benötige zurückwandele... mein code ist daher recht unübersichtlich... nur für dieses wollknäul auseinander zu nehmen und sauber zu coden fehlt mir die zeit, wissen und lust. bin froh das sonst soweit alles funktioniert. kann mir daher jemand sagen wie ich die variable ohne punkt speichern kann? |
AW: FloatToStr problem wegen punkt als 1.000er markierung
Zitat:
|
AW: FloatToStr problem wegen punkt als 1.000er markierung
Vor allem weil es dieses Problem dann (zu 99%) nicht mehr gibt. ;)
|
AW: FloatToStr problem wegen punkt als 1.000er markierung
also mal im ernst.
wieso bitte hängt ihr euch denn jetzt daran so auf? sicher kann man das wenn man genug programmiererfahrung hat ordentlich machen. wäre einfach mal nett wenn mir jemand sagen würde wie der befehl lautet für die variable aus der formel raus schon ohne punkt zu speichern...so wie ich es beschrieben hab. schließlich ist die frage wie der befehl heißt, nicht wie ich meinen code verschöner. |
AW: FloatToStr problem wegen punkt als 1.000er markierung
Zitat:
|
AW: FloatToStr problem wegen punkt als 1.000er markierung
"Ich schlage immer mit dem Hammer auf den Lichtschalter. Das Licht geht auch aus, aber der Schalter geht auch kaputt. Gibt es da bessere Lichtschalter, die mehr aushalten?"
"Äh, warum mit dem Hammer?" "Das war doch nicht die Frage!" :roll: |
AW: FloatToStr problem wegen punkt als 1.000er markierung
Da fehlen noch 2 Zeilen:
"Das macht doch keinen Sinn." "Ich frage Dich künftig nicht mehr, Du hast ja keine Ahnung und willst nur ablenken." |
AW: FloatToStr problem wegen punkt als 1.000er markierung
Zitat:
Um die Frage zu beantworten: die Funktion Format kann das - wenn man Format('%f', [zahl]) nimmt, gibt sie die Zahl ohne Tausender-Trennzeichen aus, bei Format('%n', [zahl]) mit. Man kann im Format-String auch die gewünschte Anzahl Nachkommastellen angeben, Standard sind zwei. Tausender-Trennzeichen und Dezimalstellen-Trennzeichen kann man über FormatSettings.ThousandSeparator und FormatSettings.DecimalSeparator bestimmen. Die Format-Funktion kann übrigens noch viel, viel mehr, da lohnt es sich, die Hilfe-Seite durchzulesen. |
AW: FloatToStr problem wegen punkt als 1.000er markierung
Zitat:
Was allerding dein Problem angeht, so kann ich aus eigener erfahrung sagen, das ich selbst bei Zahlen ü1000 keine Probleme habe. egal ob mit oder ohne Punkt. Hab selber den Befehl FloatToStrF in verwendung. schaut bei mir so aus.
Delphi-Quellcode:
Muß da allerdingt nur noch die Absicherung reinbauen, das nur die Zahlen 0...9 verwendet werden und ein , wie ein . zu handhaben ist.
FloatToStrf(StrtoFloat(Form3.Edit4.Text) /
(StrToFloat(Form3.Edit5.Text) * (StrToFloat(Form3.Edit5.Text))), ffnumber, 0, 2)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 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