Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Kaufmännische Runden geht nicht ! (https://www.delphipraxis.net/178926-kaufmaennische-runden-geht-nicht.html)

Furtbichler 4. Feb 2014 15:55

AW: Kaufmännische Runden geht nicht !
 
Zitat:

Zitat von Klaus01 (Beitrag 1246596)
Vielleicht tut es das:
Delphi-Quellcode:
bankers_round := ceil(value * 100)/100;
ceil

Das hat jetzt nichts mit 'bankers rounding' zu tun.

hoika 4. Feb 2014 16:08

AW: Kaufmännische Runden geht nicht !
 
Hallo,

es gab vor etwa einem Jahr mal nen Thread dazu,
nachdem keine der Funktionen so richtig funktioniert hatte,
habe ich mir was eigenes gebaut, was auf String-Handling basiert,
also mit Nullen auf 3 Kommastellen auffüllen,
3. Stelle nach Null prüfen, wenn >=5 aufrunden, sonst abrunden ...

Danach das Komma entfernen und ich habe sofort meine EuroCent als Integer.


Heiko

Furtbichler 4. Feb 2014 19:23

AW: Kaufmännische Runden geht nicht !
 
Zitat:

Zitat von hoika (Beitrag 1246637)
...es gab vor etwa einem Jahr mal nen Thread dazu,
nachdem keine der Funktionen so richtig funktioniert hatte,
habe ich mir was eigenes gebaut, was auf String-Handling basiert,
also mit Nullen auf 3 Kommastellen auffüllen,
3. Stelle nach Null prüfen, wenn >=5 aufrunden, sonst abrunden ...

Danach das Komma entfernen und ich habe sofort meine EuroCent als Integer.

Das ist jetzt so ziemlich genau 2 Monate her. Aber bitte, nicht diese Art der 'Problem-nicht-verstanden-also-hol-ich-den-Holzhammer'-Problemlösung. Ich befürchte, Du bekommst mit normalen Rundungsfehlern der Double-Werte auch Probleme, aber das soll hier nicht Thema sein.

Die Lösung für dein Rundungsproblem heißt 'Round'. Und wenn man gaanz genau sein will, addiert man noch 0.5x die geforderte Genauigkeit hinzu, bevor man rundet.

Mit Fließkommazahlen und Runden zu arbeiten, ist total simpel. Man muss einfach nur einmal verstehen, was dahinter steckt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.
Seite 2 von 2     12   

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