принимать
36103009879073133562313702394913733
36103009879073133562313702394913733.0
В качестве примера,
Какая разница в точности при представлении очень длинного целого числа в double в C ++?
Во-первых, нет very long
введите C ++. Я предполагаю, что вы говорите о 64-битном целочисленном типе и что double
соответствует 64-битному IEE 754 представлению с плавающей запятой.
64-битное целое число имеет (до) 64 бит точности; то есть приблизительно 19 десятичных цифр (при условии целочисленного типа без знака). В отличие от этого, 64-битная плавающая точка IEE имеет 52-битную точность; то есть примерно 15 десятичных цифр.
Пример, который вы приводите, имеет 35 десятичных цифр, что означает, что он не может быть представлен как 64-разрядное целое число совсем. double
представление этого числа потеряет примерно последние 20 десятичных цифр точности.
Ссылка:
Других решений пока нет …