Ich kann auf verschiedene Arten denken, z.Was ist die zuverlässigste Art zu prüfen, ob eine Gleitkommazahl eine ganze Zahl ist?
Convert.ToInt32(floatingPoint) - floatingPoint == 0;
Math.Truncate(floatingPoint) - floatingPoint == 0;
floatingPoint % 1 == 0;
Math.Floor(floatingPoint) == floatingPoint;
//etc...
Aber welche Methode ist am zuverlässigsten?
ganzen Zahlen genau dargestellt werden kann, in Fließkomma-Notation. Ihr Beispiel für 42.0000000000000000662 kann einfach nicht passieren. –
Dies ist keine gute Idee. Schließlich wird der Unterschied zwischen aufeinanderfolgenden Fließkomma-Repräsentationen größer als 0,5 sein, und dann ist es nicht klar, welche Ganzzahl die Zahl darstellen soll. –
@Jimmy: Das stimmt nicht. Versuchen Sie, 2^31-1 in einer Fließkomma-Implementierung mit einfacher Genauigkeit genau darzustellen. –