gpt4 book ai didi

c++ - 关于 c 中浮点运算的异常,关于从自身减去一个数

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:37 25 4
gpt4 key购买 nike

<分区>

考虑以下代码片段:

float f = 0.01 ;
printf("%f\n",f - 0.01);
if (f - 0.01 == 0)
{
printf("%f\n",f - 0.01);
}

当我运行这段代码时,第二行得到输出 -0.000000,并且 if 条件不执行。

-0.000000 是什么原因?

我记得在大学时上过一门数字逻辑课,这是由于使用一个补码的内部表示而产生的。如果我错了,请纠正我,并提出修复建议以及将来如何避免这种情况。

如果重要的话,我正在使用 clang 来编译我的代码。

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