![]() |
Rundungsfehler mit Extended Werten??
Wenn man ner Variable vom Typ Extended n Wert zuweist, zum Beispiel über StrToFloat('123456789,123456789123456789') dann kommt es zu n doch recht großen Rundung .. weil die Varible hat dann den Wert 123456789,12 .. was dann zu nem Problem wird, wenn man mit dem Wert weiter rechnet .. Rundungsungenauigkeiten ..
Hat jemand ne Idee wie man das Problem lösen kann ?? Also kennt jemand n Zahlentyp .. bei dem es nicht zu so extremen Rundungen kommt ?? Danke .. |
Wie sieht's bei Currency aus?
Gruß |
Du kannst die Zahl davor ja mal die Anzahl der Stellen nehmen die du mehr haben willst und nacher beim rechnen wieder duch diese Zahl teile.
Siehe: ![]() |
Also zu dem Multiplizieren .. damit keine Nachkommastellen .. kann nich nur sagen .. die Idee hat ich auch schon .. in abgewandelter Form .. nämlich ich suche in dem String nach dem Komma (decimalseperator) "merke" mir wo ich s gefunden hab und lösch es dann .. und dann so wie gehabt .. String '1234566789123456789123456789' ergibt dann nach der Umwandlung zum Extended-Wert 12345678912e+26 .. ist also die selbe Rundungsungenauigkeit wie beim obigen Beispiel ..
Mit Curreny funktioniert das irgenwie auch nich soooo gut .. man könnt zwar die Anzahl der Nachkommastellen noch in ner Extravariable speichern .. allerdings wäre das Rechnen mit dem Wert dann Extrem hinderlich .. weil Multiplikation und Division gehn ja noch aber wie siehts mit Addition und Subtraktion aus .. da müsste man den Wert dann wohl zurück in nen Extended Wert konvertieren .. Aber danke .. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 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