36103009879073133562313702394913733
36103009879073133562313702394913733.0
作为一个例子,
代表一个很长的整数成双层在C++时是在什么精度不同?
36103009879073133562313702394913733
36103009879073133562313702394913733.0
作为一个例子,
代表一个很长的整数成双层在C++时是在什么精度不同?
首先,在C++中没有very long
类型。我假设你正在谈论一个64位整数类型,而double
对应于64位IEE 754浮点表示。
64位整数具有(高达)64位精度;即大约十九个十进制数字(假定为无符号整数类型)。相比之下,64位IEE浮点具有52位精度;即大约15位十进制数字。
你给出的例子有35个十进制数字,这意味着它不能被表示为一个64位整数在所有。该数字的double
表示将大致丢失精度的最后20位十进制数字。
参考:
谢谢!我想要处理一个非常长的整数参数的非线性系统,如下所示:http://stackoverflow.com/questions/20255722/precision-loss-when-solving-nonlinear-equations-with-long-integer-parameters-by ,你认为把所有这些整数都归因于主要因素吗? – LCFactorization
我不明白它会有什么帮助。 –
在未来,请与标签相关编程语言的问题。 –
谢谢!由于名誉较低,我无法创建标签 – LCFactorization
您不需要创建标签,只需使用正确的标签即可。 –