gpt4 book ai didi

c - 对大型 double 据进行除法时得到错误结果

转载 作者:行者123 更新时间:2023-11-30 20:01:14 24 4
gpt4 key购买 nike

这是我的代码

double max = pow(2,1000);
double test = max/10;

结果测试是错误的结果。我想知道这是怎么发生的?

最佳答案

问题在于 float 的精度。它们以二进制格式存储,特别是 double 只能存储尾数的 53+1 位。

当你将这么大的数除以 10 时,它会丢失一些位,因为不可能用二进制数精确地表达除法。

实际上,精确地存储 1/10 是不可能的,所以这里 2 的原次幂实际上并不那么重要。

编辑:关于其他答案 - 指数可以以 double 存储 11 位,因此它能够处理 2^1000。

关于c - 对大型 double 据进行除法时得到错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35061789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com