![]() |
Plötzlich auftretenes Rundungsproblem
Hallo,
ich bin gestern von einem Kunden über eine Rundungsproblematik hingewiesen worden. Das Problem tritt bei den Funktionen FormatFloat und Str auf. Eine Berechnung die im vorliegenden Fall 9,32 EUR ergeben müsste 3,45*3/0,9=9,315 wird durch die o.g. Funktionen als 9,31 EUR ausgegeben. Beim Kunden trat das Problem aus verschiedenen Rechnern auf d.h. einer zeigte richtig an ein anderer falsch so dass ich erst an die Rechner dachte dann konnte ich das Problem auch an meinen Entwicklungsrechner provozieren. Das Problem trat zumindestens nachvollziehbar auf nachdem das Programm über Indy eine FTP-Verbindung machte. Beim Kunden jedoch wird dieses nicht ausgeführt so das ich davon ausgehe das es noch andere Faktoren geben muß. Hat jemand etwas ähnliches erlebt bzw. weiß jemand wie sich FormatFloat und Str in ihren Rundungsverhalten beeinflussen lassen. Grüße Frank |
Re: Plötzlich auftretenes Rundungsproblem
Das könnte an den Systemeinstellungen liegen, so wie das Datum und die Währungseinheiten.
mfg freak |
Re: Plötzlich auftretenes Rundungsproblem
Welche Systemeinstellung ?
Die für mich relevanten setzte ich beim Programmstart z.B.:
Delphi-Quellcode:
Grüße
Application.UpdateFormatSettings := False;
CurrencyDecimals := 2; DateSeparator := '.'; DecimalSeparator := ','; LongDateFormat := 'dd.mm.yyyy'; LongTimeFormat := 'HH:MM:SS'; ShortDateFormat := 'dd.mm.yy'; ShortTimeFormat := 'HH:MM'; ThousandSeparator := '.'; TimeSeparator := ':'; Frank |
Re: Plötzlich auftretenes Rundungsproblem
Zitat:
Wie kommst du da auf 9,315? Was hältst du von 11,5 |
Re: Plötzlich auftretenes Rundungsproblem
Ich will ja nichts sagen, aber ich bekomme da 11,5 raus. :roll:
|
Re: Plötzlich auftretenes Rundungsproblem
Und wo steht da das bei 5 aufgerundet wird? :gruebel:
mfg freak |
Re: Plötzlich auftretenes Rundungsproblem
Hey!
Das is ja im Prinzip egal! Interessant ist ja nur wie manche PCs auf 9.31 kommen und andere auf 9.32 - Schon mal mit der folgenden Procedure probiert: (Kenn ich halt von Delphi 7 - weiß net ob es die in Pascal auch gibt :roll: ):
Code:
PS: Bei mir liefert das aber auch 9.31... Keine Ahnung warum! Oder du musch dir halt deine eigene Routine schreiben... Wird dir wohl nix anderes übrig bleiben - aber dann macht das auch sicher jeder Rechner gleich :???:
i:=RoundTo(9.315, -2);
mfg shark |
Re: Plötzlich auftretenes Rundungsproblem
prozentrechnen will gelernt sein...
Code:
3,45*3*0,9=9,315=3,45*3/1,01
|
Re: Plötzlich auftretenes Rundungsproblem
Zitat:
|
Re: Plötzlich auftretenes Rundungsproblem
Zitat:
Trunc(X + 0,005) => gerundeter Wert. ...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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