Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   FloatToStr problem wegen punkt als 1.000er markierung (https://www.delphipraxis.net/159648-floattostr-problem-wegen-punkt-als-1-000er-markierung.html)

Gilmohr 6. Apr 2011 19:22

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!

Bummi 6. Apr 2011 19:28

AW: FloatToStr problem wegen punkt als 1.000er markierung
 
Delphi-Quellcode:
StrToFloat(StringReplace('1.523,7 ' ,ThousandSeparator, '', [rfReplaceAll]))

Gilmohr 6. Apr 2011 19:57

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 );

Sir Rufo 6. Apr 2011 20:45

AW: FloatToStr problem wegen punkt als 1.000er markierung
 
Wofür soll denn diese Umwandlungsorgie gut sein?

Gilmohr 6. Apr 2011 21:12

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

Sir Rufo 6. Apr 2011 21:27

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"

Gilmohr 6. Apr 2011 21:37

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?

Gilmohr 6. Apr 2011 21:49

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?

Luckie 6. Apr 2011 21:59

AW: FloatToStr problem wegen punkt als 1.000er markierung
 
Zitat:

Zitat von Gilmohr (Beitrag 1093534)
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.

Das solltest du aber ganz schnell mal tun. Die Zeit, die du da aufwendest sparst du dir nachher bei der Fehlersuche und bei Problemen wie diesen. Die werden nämlich nicht weniger werden, sondern zu nehmen. Also betreibe erst mal ein gründliches Refactoring bevor du an dem Programm weiterarbeitest.

Sir Rufo 6. Apr 2011 22:03

AW: FloatToStr problem wegen punkt als 1.000er markierung
 
Vor allem weil es dieses Problem dann (zu 99%) nicht mehr gibt. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz