gpt4 book ai didi

c++ - 为什么 c++ 对看起来相同的计算给出不同的答案?

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:12 24 4
gpt4 key购买 nike

我在一个简单的 main 中有以下源代码:

int main(int argc, char** argv)
{
double x = atof(argv[1]);
double y = atof(argv[2]);

double res = x + std::floor((y - x) * .5 * 100 + .5)*0.01;

std::cout << res << std::endl;
}

如果我用 75.21 75.22 运行上面的代码,它会得到 75.22,但如果我用 7.21 和 7.22 运行它,它会得到 7.21。这两个数字相差 0.01,所以我不明白为什么会这样?

最佳答案

简短的回答:浮点值是不精确的。

长答案:What Every Computer Scientist Should Know About Floating-Point Arithmetic

关于c++ - 为什么 c++ 对看起来相同的计算给出不同的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14408295/

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