auch ne veriante - danke für den Link
Nur leider gibts ab bestimmten Werten Rundungsdifferenzen

(egal wie hoch man dann die constante ccMaxDigits dreht)
im Beispiel unten kommt zB. 12345677999999 raus statt 12345678. Die fixe Constante ist nicht unbedingt mein fall ebenso das hier auch eine Schleife durchgerattert wird (aber mit dem könnt ich jedoch noch leben)
hier mal die Function von alzaimar:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Function ExractFractionalPart (aValue : Extended) : Int64; Const ccMaxDigits = 100000000000000; // Weiss nicht, ob das reicht Begin Result := Trunc (ccMaxDigits * Frac(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;
procedure TForm1.Button1Click(Sender: TObject); begin Showmessage(IntToStr(ExractFractionalPart(2456.12345678))); end; |
aber ich hab jetzt schon jede Menge Denkanstösse für bekommen - glaub dass ich mir da jetzt was zusammenschustern kann
Danke nochmal euch allen für eure Zeit