私はいくつかの方法を考えることができます。浮動小数点変数が整数かどうかを確認する最も信頼性の高い方法は何ですか?
Convert.ToInt32(floatingPoint) - floatingPoint == 0;
Math.Truncate(floatingPoint) - floatingPoint == 0;
floatingPoint % 1 == 0;
Math.Floor(floatingPoint) == floatingPoint;
//etc...
しかし、どの方法が最も信頼できますか?
整数はで正確に表現することができます浮動小数点表記法。 42.00000000000000662というあなたの例は、単に起こることはありません。 –
これは良い考えではありません。最終的には、連続するビット浮動小数点表記の違いは0.5より大きくなり、数値が表すはずの整数が明確ではありません。 –
@ジミー:そうではありません。 2^31-1を単精度浮動小数点の実装で正確に表現してみてください。 –