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