Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#3

AW: Großen Float-Wert ohne Exponent darstellen?

  Alt 1. Jun 2015, 09:10
Da trunc als Ergebnis int64 liefert ist die Routine für wirklich große Zahlen unbrauchbar, weiter ist d := int() nicht übersetzbar und für negative Werte ist der Resultstring leer. Hier eine modifizierte Routine
Delphi-Quellcode:
Function ExtendedToString(v : Extended; ThousandSeparator : Char) : String;
var
  i : Integer;
  d: extended;
  sign: string;
Begin
  if v<0 then begin
    v := -v;
    sign := '-';
  end
  else sign := '';
  Result :='';
  i:=0;
  while v>0.01 do begin
    d := int(0.5+frac(v/10)*10);
    v := int(v/10);
    Result := IntToStr(round(d))+Result;
    inc(i);
    if (i mod 3=2) and (ThousandSeparator<>#0) then
      Result := ThousandSeparator+Result;
  end;
  Result := sign+Result;
end;
  Mit Zitat antworten Zitat