拿
36103009879073133562313702394913733
36103009879073133562313702394913733.0
作为一个例子,
在C ++中将一个非常长的整数表示为double时,精度有何不同?
答案 0 :(得分:2)
首先,C ++中没有very long
类型。我假设你在谈论一个64位整数类型,double
对应于64位IEE 754浮点表示。
64位整数具有(最多)64位精度;即大约19个十进制数字(假设无符号整数类型)。相比之下,64位IEE浮点具有52位精度;即大约15位小数。
您给出的示例有35个十进制数字,这意味着它不能表示为64位整数 。该数字的double
表示将大约丢失精确度的最后20位小数。
参考: