Какая разница в точности между двойным и очень длинным целым числом?

принимать

 36103009879073133562313702394913733
36103009879073133562313702394913733.0

В качестве примера,

Какая разница в точности при представлении очень длинного целого числа в double в C ++?

0

Решение

Во-первых, нет very long введите C ++. Я предполагаю, что вы говорите о 64-битном целочисленном типе и что double соответствует 64-битному IEE 754 представлению с плавающей запятой.

64-битное целое число имеет (до) 64 бит точности; то есть приблизительно 19 десятичных цифр (при условии целочисленного типа без знака). В отличие от этого, 64-битная плавающая точка IEE имеет 52-битную точность; то есть примерно 15 десятичных цифр.

Пример, который вы приводите, имеет 35 десятичных цифр, что означает, что он не может быть представлен как 64-разрядное целое число совсем. double представление этого числа потеряет примерно последние 20 десятичных цифр точности.

Ссылка:

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]