PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommastellen kürzen? Delphi


Unregistered
2003-04-26, 14:50:47
Hi,

ich habe in meinem Delphi-Prog mehrere Extended-Zahlen!
Da der Computer da ja sehr genau sind diese auch entsprechend lang!

Kann man diese irgendwie abschneiden (nicht runden) so auf 2-3 Stellen nach dem Komma?

Danke!

Exxtreme
2003-04-26, 14:57:40
Also entweder du nimmst einen Datentyp mit weniger Genauigkeit... was ich aber dringend abraten würde... oder du verwandelst dein Ergbnis in einen String und kürzt die Stellen manuell.

Demirug
2003-04-26, 15:17:23
Exxtreme, selbst Delphi hat funktionen(z.b. Format) die es erlauben eine Zahl so zu formatieren wie man sie braucht. Von Hand abscheiden ist viel zu aufwendig.

Wenn es allerdings nicht darum geht die Zahlen nur für Ausgabe zu formatieren muss man ein bischen tricksen.


ACHTUNG Kein richtiger Delphicode.

factor = 10 hoch Precision

if factor == 0
factor = 1

result = Runden (value*factor)
result = result / factor

x-dragon
2003-04-26, 16:00:06
Ist natürlich die Frage in welchem Format das Ergebnis sein soll, aber am einfachsten finden ich es noch den Wert mal 10 bzw 100 zu nehmen (also für 2- oder 3-stellige Kommastellen), dann mit Int(ExtZahl) (= Real) bzw Trunc(ExtZahl) (=Int64) den ganzahligen Wert abzugreifen und anschliessend den Wert wieder durch 10 bzw 100 zu teilen.

Mit den normalen Formatierungs-Funktionen wird ja leider immer gerundet ...