双精度和超长整数的精度差是多少

what is the precision difference between a double and a very long integer?

本文关键字:多少 精度 长整数 双精度      更新时间:2023-10-16

采用

 36103009879073133562313702394913733
 36103009879073133562313702394913733.0

例如,

在C++中将一个很长的整数表示为双精度时,精度有什么区别?

首先,C++中没有very long类型。我假设您谈论的是64位整数类型,并且double对应于64位IEE754浮点表示。

64位整数具有(高达)64位精度;即大约19个十进制数字(假定为无符号整数类型)。相比之下,64位IEE浮点具有52位精度;即大约15个十进制数字。

您给出的示例有35个十进制数字,这意味着它根本不能表示为64位整数。该数字的double表示将丢失大约最后20位小数精度。

参考:

  • http://en.wikipedia.org/wiki/Double-precision_floating-point_format