Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Jun 2009
@Lannes:
sErg := FloatToStr(Round(e * Power(10, n)) / Power(10, n));
aber bei all diesen Varianten ... es geht so nicht mehr, sobald dir die internen Rundungsfehler der Fließkommatypen einen Strich durch die Rechnung machen :angel2:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Jun 2009
@rollstuhlfahrer ... schau dir mal das * in den Format-Settings an :zwinker:
siehe mein Beitrag > http://www.delphipraxis.net/internal_redirect.php?p=1048785#1048785
oder siehe Format
dakannst du dir das IntToStr und das etwas unübersichtliche Zusammensetzen sparen.
@guidok:
hier wird verlangt, daß der String maximal 3 Nachkommastellen hat ... aber Format selber kennt da nur die...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Jun 2009
OK, hatte ich zwar noch nicht das Problem, aber dann einfach so ^^
Function MyFormat(f: Extended; Precession: Byte; Width: Byte = 0): String;
Begin
Result := Format('%*.*n', );
If Pos(DecimalSeparator, Result) > 0 Then Begin
While Result = '0' do Delete(Result, Length(Result), 1);
If Result = DecimalSeparator Then Delete(Result, Length(Result), 1);
End;
End;
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Jun 2009
und nicht das Komma vergessen zu entfernen, falls danach alle Nullen weg sind :angel:
Function MyFormat(f: Extended; Precession: Integer): String;
Begin
Result := Format('%.*n', )
While Result = '0' do Delete(Result, Length(Result), 1);
If Result = DecimalSeparator Then Delete(Result, Length(Result), 1);
End;