2013-11-28 139 views
0

双精度和超精度整数之间的精度差是多少?

36103009879073133562313702394913733 
36103009879073133562313702394913733.0 

作为一个例子,

代表一个很长的整数成双层在C++时是在什么精度不同?

+1

在未来,请与标签相关编程语言的问题。 –

+0

谢谢!由于名誉较低,我无法创建标签 – LCFactorization

+0

您不需要创建标签,只需使用正确的标签即可。 –

回答

2

首先,在C++中没有very long类型。我假设你正在谈论一个64位整数类型,而double对应于64位IEE 754浮点表示。

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

你给出的例子有35个十进制数字,这意味着它不能被表示为一个64位整数在所有。该数字的double表示将大致丢失精度的最后20位十进制数字。

参考:

+0

谢谢!我想要处理一个非常长的整数参数的非线性系统,如下所示:http://stackoverflow.com/questions/20255722/precision-loss-when-solving-nonlinear-equations-with-long-integer-parameters-by ,你认为把所有这些整数都归因于主要因素吗? – LCFactorization

+0

我不明白它会有什么帮助。 –