![]() |
Formatfehler
hallo zusammen,
mit bruttopreis := RoundCurrency(bruttopreis,0) runde ich eine berechneten Preis. das funktioniert soweit, bis auf Ausnahmen in denen sich 4 Nachkommastellen ergeben und in bruttopreis stehen z.B. 21,9999 . Formatiere ich den currency-wert mittels: preisbruttoEdit.text := Format('%5.2f ', [bruttopreis]); erhalter ich ein Ergebnis welches nicht weiter verwenden kann: 21,:0 Was kann ich machen? danke gruss KHH |
AW: Formatfehler
ist doch richtig wenn du auf die 2. Nachkommastelle rundest wird aus 0,999 > 1,00. Es gibt ja noch das kaufmännische Runden um die Rundungsdifferenzen zu minimieren.
|
AW: Formatfehler
Mein Delphi XE liefert bei
Delphi-Quellcode:
22,00, also völlig korrekt. Möglicherweise ein Bug in Lazarus? Klappt es, wenn Du die Länge weglässt und nur die Precision nimmst (%.2f)?
Format('%5.2f', [21.9999])
|
AW: Formatfehler
das Problem waren _mehr_ als 4 Nachkommastellen, die _korrekt_ auf eben diese 4 Nachkommastellen gerundet wurden.
ich hab diese jetzt auf 4 Nachkommastellen begrenzt, damit funktionierts korrekt ich danke euch Gruss KHH |
AW: Formatfehler
Das Problem ist auch nicht, ob 21 oder 22, sondern das ":"-Zeichen in den Ausgaben. Da ":" = "9"+1 ist, sieht es nach einer mißglückten Optimierung aus (Arithmetik auf Strings).
Es ist auch weder ein eigentliches Lazurus- noch Format-Problem, sondern tritt auch schon bei writeln(bruttopreis:5:2); auf nur mit "." statt ",". |
AW: Formatfehler
Zitat:
ich denke als Lösung Nachkommastellen zu kürzen ist ja nicht das Gelbe vom Ei :-( |
AW: Formatfehler
Zitat:
Ein Workaround wäre: Rechne weiter mit Currency und bei der Ausgabe nimm
Delphi-Quellcode:
Format('%10.2f ', [extended(bruttopreis)]); //oder
Format('%10.2f ', [double(bruttopreis)]); |
AW: Formatfehler
ok, ich danke euch
gruss kh |
AW: Formatfehler
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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 by Thomas Breitkreuz