![]() |
Format-Befehl rundet falsch
Hallo zusammen,
kann es sein,dass der Format-Befehl falsch rundet? Wenn ich
Code:
wird im Memo 9.99 angezeigt.
var rValue : Real;
begin rValue := 9.995; Memo1.Lines.Add(format('%7.2f', [rValue])); end Ich verwende Delphi XE. Gibt es einen Abhilfe? Grüße Gerd |
AW: Format-Befehl rundet falsch
|
AW: Format-Befehl rundet falsch
Mach mal folgendes:
Delphi-Quellcode:
Dann siehst du so etwas wie 9.99499999999999922000
var n:real; s:string;
begin n:=9.995; str(n:0:20,s); ShowMessage(s); end; Der Wert 9.995 kann nicht exakt abgebildet werden, in diesem Fall steht in n ein Wert, der geringfügig kleiner ist, als 9.995 und der wird korrekt abgerundet. WorkAround auf die Schnelle:
Delphi-Quellcode:
n:=9.995;
n:=Round(n*100+0.5)/100; |
AW: Format-Befehl rundet falsch
Zitat:
Wenn es eine Währung ist, dann ist Real sowieso falsch, versuch es mit Currency. Ergebnis wird 10.00 sein. |
AW: Format-Befehl rundet falsch
Hallo zusammen,
was ich wollte ist einen ganz normale mathematische Rundung. D.h. ab 5 wird aufgerundet, darunter ab. Und Delphi macht es ja auch so. Und es ist keine Währun. Die Antwort von Amateurprofi hat mir aber weiter geholfen, denn jetzt weiß ich wenigstens warum es so ist. Nicht toll, aber so ist es halt. Ich hatte schon einen ähnlichen Ansatz gewählt wie von Amateurprofi empfohlen. Danke deshalb Gerd |
AW: Format-Befehl rundet falsch
Zitat:
![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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