为什么我们不能使用具有浮点数的运算符?

时间:2015-02-23 06:54:48

标签: c++

使用浮点数时使用运算符有什么不对。我们不能使用' ==' '< ='具有浮点数的等运算符?

这是代码。

# include <iostream>

using namespace std;

main(){
 float x, y, z;
 cout<<"1st integer: ";
 cin>>x;

 do {
    cout<<"2nd integer: ";
    cin>>y;
    if(y<=0 ){
            cout<<"You can't divide by zero"<<endl;
            continue;
        } else {
                break;
                }
        } while (1);

z = x/y;
cout<<"Result: "<<z;


}

它会产生正确的结果,因为我想得到。但是从某些地方我听说使用具有浮点数的运算符不是一个好逻辑。为什么呢?

2 个答案:

答案 0 :(得分:-1)

你做得很好。你需要警惕的是使用带有浮点的等于运算符==,因为结果可能会让你感到惊讶(例如0.1 + 0.2 != 0.3)。

但使用>>=<=<没有问题。

答案 1 :(得分:-1)

您可以安全地将浮点数与精确零相比较。这样可以防止除以零。

您无法检查x==0.1然后除以x-0.1。由于0.1不能精确表示,因此您可以在一个未知的方向上进行舍入。