将float与double进行比较:C ++

时间:2017-08-27 14:11:07

标签: c++ floating-point double

我有一个问题要找到以下代码段的输出

int main(int argc, char const *argv[])
{
float a=0.7;
if(a<0.7)
 std::cout<<"yes";

else
 std::cout<<"no";
}

初看起来,和所有人一样,我的答案是“不”,因为 0.7 不小于 0.7 。但是当我运行它时,输出“是”。我找到了一个关于此的解释,其中说C ++内部将0.7作为双值,这里实际上是检查 0.700&lt; 0.7ff 这是真的。所以我尝试了另一个值 0.5 。但是这个程序输出“no”。为什么会这样?是不是真的检查 0.500 <0.5ff ?还是我对它的理解都是错的?

0 个答案:

没有答案