功能的答案不正确

时间:2016-03-08 08:25:18

标签: c++ trigonometry cos

这个函数的答案返回到程序的main函数中,并且工作正常。问题是,余弦应该为0的任何值,结果都会给出一个奇怪的无理数(类似于1.30431912 * 10 ^ -13)。所以,90,450等等都会产生不合理的答案。怎么了?

  float cosineDegrees() {
        string i;
        double iDouble;

        cout << "Give me a number to find the value of degrees in. ";
        getline(cin, i);

        iDouble = stod(i);

        double PI = 3.14159265359;

        float answer = cos((PI/180)*iDouble);

        return answer;


    }

2 个答案:

答案 0 :(得分:3)

浮点数学具有有限的精度。你的(PI/180)*iDouble值距离90度约为1.30E-13弧度。

答案 1 :(得分:1)

如果你将Pi锁定到有限的精度,你不能指望你的'答案'更准确。 10 ^ -13实际上基本上为零,并且它不是“非理性的”。计算机中的一切都是理性的。

相关问题