Danke für die Rückmeldungen.
@TiGü: IsZero gibts in Delphi? Seit wann? Wir haben eine eigene Funktion, die aber mit 1E-07 arbeitet statt mit 1E-12.
Das wäre auch so etwas wie eine Rundung.
@Redeemer: Der Datentyp ist double. Wir verwenden das hier seit Beginn an weit über 10.000 Stellen. Dieser Wert wird durch einige geometrische Berechnungen bestimmt. Hier ist die Dimension Millimeter, es kann aber auch mal ein Winkel im Bogenmass sein. Der Anwender bekommt maximal fünf Nachkommastellen zu sehen.
Ich versuche es gerade damit
Delphi-Quellcode:
function MinRealRound(const p_Value: Double): Double;
const
minC = 1E-12;
begin
Result := Round(p_Value / minC) * minC;
end;