相关疑难解决方法(0)

C++警告:将double除以零

情况1:

#include <iostream>

int main()
{
    double d = 15.50;
    std::cout<<(d/0.0)<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)

它编译时没有任何警告和打印inf.好的,C++可以处理除零,(实时查看).

但,

案例2:

#include <iostream>

int main()
{
    double d = 15.50;
    std::cout<<(d/0)<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)

编译器发出以下警告(请参见实时):

warning: division by zero [-Wdiv-by-zero]
     std::cout<<(d/0)<<std::endl;
Run Code Online (Sandbox Code Playgroud)

为什么编译器会在第二种情况下发出警告?

0 != 0.0吗?

编辑:

#include <iostream>

int main()
{
    if(0 == 0.0)
        std::cout<<"Same"<<std::endl;
    else
        std::cout<<"Not same"<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Same
Run Code Online (Sandbox Code Playgroud)

c++ floating-point gcc divide-by-zero

97
推荐指数
5
解决办法
9340
查看次数

标签 统计

c++ ×1

divide-by-zero ×1

floating-point ×1

gcc ×1