![]() |
Re: Nachkommastellen vom Typ Real extrahieren und dann runde
wenn Du die letzten 3 Ziffern hinter dem Komma haben möchtest.
muss der Restwert mit 1000 multipliziert werden. aus 0,2 werden 200 aus 0,21 werden 210 aus 0,234 werden 234 um zu prüfen ob der Wert eine Zahl ist die ganzzahlig durch 100 teilbar ist
Delphi-Quellcode:
damit würden aus 0,200 (*1000) -> 200 (DIV 100) -> 2
if (zahl MOD 100 = 0) then
ergebnis := zahl DIV 100 else if (zahl MOD 10 = 0) then ergebnis := zahl DIV 10; aus 0,21 (*1000) -> 210 (DIV 10) -> 21 aus 0,212 (*1000) -> 212 -> 212 negative Zahlen kann man vorher mit abs in positive wandeln. Grüße Klaus |
Re: Nachkommastellen vom Typ Real extrahieren und dann runde
Oder so;
Delphi-Quellcode:
Function ExractFractionalPart (aValue : Extended) : Int64;
Const ccMaxDigits = 100000000000; // Weiss nicht, ob das reicht Begin Result := Trunc (ccMaxDigits * Fract (aValue)); // z.b. : 1.23 => 230000000 While (Result>0) And (Result mod 10 = 0) do // Solange <>0 und die letzte Stelle 0 ist, wegschnippeln Result := Result div 10; End; |
Re: Nachkommastellen vom Typ Real extrahieren und dann runde
Will auch mitspielen:
Delphi-Quellcode:
Grüße vom marabu
uses
Math; function Decimals(e: Extended; count: Byte): Int64; begin Result := Round(Frac(e) * Power(10, count)); end; |
Re: Nachkommastellen vom Typ Real extrahieren und dann runde
Nich schlecht. Weiss er denn, wie viele Nachkommastellen er haben will? Ich hab das so verstanden, das er sie Alle will, ohne zu zählen: 1.2345 => 2345. 1.2345678 ==> 2345678.
|
Re: Nachkommastellen vom Typ Real extrahieren und dann runde
@all,
also erst einmal vielen Dank ob der vielen, wirklich interessanten Antworten! Ich denke ich fange mit marabus Vorlage an ;-) Zitat:
Diese muss ich dann auf 2 Stellen runden, von daher ist marabus Vorschlag etwas "überladen" :-D Allen eine gute Nacht und einen schönen Sonntag! Grüsse Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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