gpt4 book ai didi

c++ - 不正确的 float 学?

转载 作者:太空狗 更新时间:2023-10-29 23:21:16 28 4
gpt4 key购买 nike

这是一个让我在过去几个小时里完全困惑的问题......

我的程序中有一个硬编码的方程式:

double s2;

s2 = -(0*13)/84+6/42-0/84+24/12+(6*13)/42;

每次我运行程序时,计算机都会输出 3 作为答案,但是手工计算,我得到 4。更进一步,在将方程式输入 Matlab 后,我也得到答案 4。这是怎么回事在这里?

我能想到的唯一错误就是舍入错误。但是,由于最多有 5 个舍入误差,再加上使用 double 学,我的最大误差会非常非常小,所以我怀疑这是问题所在。

谁能提供任何解决方案?

提前致谢

-伪造

最佳答案

您实际上并没有在那里进行 float 学运算,您进行的是整数数学运算,这会降低除法的结果。

在 C++ 中,5/4 = 1,不是 1.25 - 因为 5 和 4 都是整数,所以结果将是整数,因此结果的小数部分被丢弃。

另一方面,5.0/4.0 大约等于。 1.25 因为 5.0 和 4.0 中至少有一个是 float 所以结果也是 float 。

关于c++ - 不正确的 float 学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236550/

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