Forum: Programmieren allgemein
by Uwe Raabe,
10. Okt 2023
Das geht dann aber auch etwas schlanker:
uses
System.Sysutils;
...
function plusepsilone(const e : extended):extended;
begin
Result := e;
Forum: Programmieren allgemein
by Uwe Raabe,
2. Okt 2023
Da digit ein Integer ist, bietet sich auch IntPower an:
function GetDigits(const AValue: Double; Digits: Integer): Integer;
begin
Result := Trunc(Frac(AValue)*IntPower(10, Digits));
end;
Forum: Programmieren allgemein
by Uwe Raabe,
2. Okt 2023
Punkt 1 ließe sich auch durch Frac(x) ersetzen.
Wenn es Runden statt Abschneiden sein darf, dann wäre RoundTo eine Alternative. Theoretisch kann man vorher mit SetRoundMode einstellen, wie das erfolgen soll (damit ginge auch ein truncate), aber das ist natürlich nicht threadsicher.