Я ищу достаточно эффективный способ определения того, может ли значение с плавающей запятой ( double
) быть точно представлено целочисленным типом данных ( длинный
, 64 бит).
Моя первоначальная мысль заключалась в том, чтобы проверить показатель степени, чтобы убедиться, что он равен 0
(или, точнее, 127
). Но это не сработает, потому что 2.0
будет e = 1 m = 1 ...
В общем, я застрял. У меня есть ощущение, что я могу сделать это с помощью битовых масок, но сейчас я просто не понимаю, как это сделать.
Так как я могу проверить, можно ли точно представить двойное число как длинное?
Спасибо