Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#18

AW: Anzahl der Nachkommastellen von Double ermitteln

  Alt 13. Sep 2018, 19:46
Für die Funktionen aus den etwas neueren Helpern gibt es auch entsprechende "alte" Pascalfunktionen, die zufällig oftmals gleich/ähnlich heißen.

Die prozeduale Syntax sähe z.B. so aus.
Delphi-Quellcode:
EinStringMitMöglichstWenigenNachkommastellen := TrimRight(TrimRight(FloatToStrF(MyDouble, ffFixed, 15, 18), ['0']), [FormatSettings.DecimalSeparator]);

AnzahlDerNachkommastellen := Pos(FormatSettings.DecimalSeparator, ReverseString(TrimRight(FloatToStrF(MyDouble, ffFixed, 15, 18), [0]))) - 1;

// mir Leerzeichen für das Trim
AnzahlDerNachkommastellen := Pos(FormatSettings.DecimalSeparator, ReverseString(TrimRight(ReplaceStr(FloatToStrF(MyDouble, ffFixed, 15, 18), '0', ' ')))) - 1;
Schade ist nur, dass Trim/TrimRight/TrimLeft der StrUtils nur Leer- und Steuerzeichen kennen, aber für TrimRight wird es bestimmt auch irgendwo eine alternative Funktion geben.


Nja, einige der bekannten String-Funktionen fehlt noch im Helper und dafür gibt es auch ein bissl was Neues, welches die Prozedualen noch nicht kennen.



Vorteil der Helper ist, dass Funktionen in der Reihenfolge ihrer Anwendung im Code stehen, also hintereinander.
Beim Prozedualen stehen sie in umbekehrter Reihenfolge, mit dem Result des Vorgängers als Parameter.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (13. Sep 2018 um 19:51 Uhr)
  Mit Zitat antworten Zitat