![]() |
AW: kaufmännisch runden
Zitat:
Zitat:
![]() Deine Fragestellung ist mir etwas zu allgemein gehalten, denn als Anfänger mit nur lückenhaften Grundkenntnissen hat man eigentlich immer mit Problemen zu kämpfen. Da kommt man nicht drumrum, da muß man hindurch. Zitat:
|
AW: kaufmännisch runden
Zitat:
Aaaber: In Delphi geht das kaum anders (bei Geld gibts -zum 1000x- den 'Currency' Datentyp, der mit einigen Datenbanken kompatibel is, sowit ich weiß) Schau dir mal (aka bilde dich weiter ;-) ) Artikel über Floating Point, Fließkommazahlen usw. an. Das ist das gängige Format, indem Zahlen mit Dezimalanteil verarbeitet werden. Wieso gängig? Weil die Operationen darauf, also +,-,*,/, Sin etc. hochoptimiert durchgeführt werden können. Pferdefuß: Damit können so "einfache" Zahlen wie "0,1" genaugenommen nicht dargestellt werden, dafür aber (z.B.) so wichtige Zahlen wie "0,09999999999643" und "0,100000000000367". Warum das so ist, wirst Du sehen, wenn Du die entsprechenden Artikel liest. Beide Zahlen, also die 0,09999... und die 0,10000.. werden aber beim Debuggen in Delphi als 0,1 angezeigt (gemein, was?). Ein Vergleich mit "0,1" ergibt dann aber FALSE. Und ein Vergleich auf ">0,1" unter umständen auch. Und obwohl Delphi im Debugger die Zahl vielleicht als 0,1 anzeigt, wird sie in der Datenbank als 0,99999999999999643 abgelegt (oder eben als 0,1000000000000367). Aber so etwas will man ja nicht unbedingt auf einer Rechnung sehen, oder als Preisschild im Supermarkt (die wären ganz schön lang, die Teile): Also muss man runden. Das muss man sowieso, wenn man prozentuale Anteile (Rabatt, VAT usw) ausrechnet. So, und beim Runden muss man dann erstens 0,005 dazuaddieren, damit man kaufmännisch rundet und dann blöderweise nochmals 0,0000000000001 um diesem Format ein Schnippchen zu schlagen. Jeder Delphi-Programmierer geht da durch und stellt die gleichen Fragen. Und jeder gute Delphi-Programmierer weiß darauf irgendwann die Antwort. Ich gehe davon aus, das Du einer derjenigen sein wirst, die dem nächsten Rookie das ganz genau erklären kann. Und für Leute, die erst Fahrrad fahren lernen ist es echt nervig, von den Fahrradfahrern, die an einem vorbeifahren, erklärt zu bekommen, wie leicht das doch ist. |
AW: kaufmännisch runden
Zitat:
1,344+0,005=1,349 letzte Stelle streichen => 1,34 Was ist daran befremdlich? Du willst einen gerundeten Wert bekommen, der sieht Deinem ursprünglichen Wert nur ähnlich hat aber ansonsten garnichts mit diesem zu tun! Das ist nur für die Darstellung. Zitat:
Mein Tip dazu: wenn 16Bit reichen sollten, dann nimm 32Bit weil es kommt immer mehr als man glaubt. Gruß K-H |
AW: kaufmännisch runden
![]() |
AW: kaufmännisch runden
Zitat:
An allem ist Delphi schuld. :roll: Man kann natürlich alles umständlich selber machen, oder ![]() ![]() |
AW: kaufmännisch runden
Jetzt mal ernsthaft
gerundet werden soll auf 2 Stellen hinterm Komma, gegeben ist 0,44444444444444444444444445 was kommt raus? 0,45 oder 0,44? Gruß K-H |
AW: kaufmännisch runden
0,44 ... egal ob mathematisch oder kaufmännisch gerundet
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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