gpt4 book ai didi

c++ - float 比较给出不同的结果

转载 作者:太空狗 更新时间:2023-10-29 19:39:45 26 4
gpt4 key购买 nike

看下面两段代码,告诉我答案差异很大的原因。

#include<stdio.h>
int main() {
float a = 0.9;
if(a<0.9)
printf("hi"); // This will be the answer
else
printf("bye");
return 0;
}

如果我们将 0.9 更改为 0.8,则会打印 else 的语句:

#include<stdio.h>
int main() {
float a = 0.8;
if(a<0.8)
printf("hi");
else
printf("bye");//this will be the answer
return 0;
}

那么为什么当我们只改变一个数字时输出会改变?

最佳答案

这个错误是由于浮点精度,因为你正在比较 float输入 double值(value)。尝试将它与浮点文字进行比较:if(a<0.8f)

我建议你阅读根据 wikipedia article , 它详细解释了为什么会发生错误。

关于c++ - float 比较给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7580352/

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