Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Rundung bei Verwendung von DisplayFormat (https://www.delphipraxis.net/186102-rundung-bei-verwendung-von-displayformat.html)

Neumann 3. Aug 2015 18:15

AW: Rundung bei Verwendung von DisplayFormat
 
Ich vermute mal, dass es sich um Fastreport handelt. Dessen Variablen sind zunächst erst mal vom Typ Variant und werden intern dann - wenn eine Zahl erkannt oder erwartet wird in den Typ Double umgewandelt.

Vielleicht ist da das Problem. Abhilfe ist, dem Report immer schon vorher gerundete Werte zu übergeben. Es gibt doch die Funktion Roundto die das macht, damit habe ich keine Probleme in der Hinsicht.

Ralf Kaiser 3. Aug 2015 18:23

AW: Rundung bei Verwendung von DisplayFormat
 
Nein. Es handelt sich um ReportBuilder.

Aber ich werde morgen mal recherchieren ob die intern so ähnlich arbeiten.

Dejan Vu 3. Aug 2015 20:32

AW: Rundung bei Verwendung von DisplayFormat
 
Zitat:

Zitat von Ralf Kaiser (Beitrag 1310814)
Zitat:

Zitat von Dejan Vu (Beitrag 1310812)
Das Problem ist, das 0.375 nicht exakt darstellbar ist.

Das sollte aber doch bei dem angegebenen Literal "0.375000000000" nicht der Fall sein.

Das stimmt zufällig, da hast Du Recht. Übrigens auch ohne die '000000'.

Ich war zu sehr auf 0.735 getrimmt.... Wenn das wirklich bei 0.375 so ist, dann ist das wirklich merkwürdig.

Das Einzige, was ich mir vorstellen kann, sind unterschiedliche Rundungsverfahren (Bankers Rounding vs. 'Normal'). Aber das hast Du ja schon gecheckt... Mystisch.

Medium 3. Aug 2015 22:03

AW: Rundung bei Verwendung von DisplayFormat
 
Nur noch mal um das klar zu stellen, auch wenn es hier glatt darstellbar ist: Es ist völlig egal wie viele Nullen du deinem Literal anhängst. Wenn ein Wert nicht perfekt in einem IEEE Float abgebildet werden kann, kann er es einfach nicht. Egal welche esoterischen Literale einem da noch so einfallen. Geht. Nicht.

(Da der konkrete Wert hier aber exakt darstellbar wäre, muss irgendwo auf dem Weg vom Programm auf den Report-Canvas etwas seltsames passieren.)


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz