我明白cos();在c ++中使用弧度正确...你可以用..来获得弧度。
(angle * PI ) / 180;
那为什么呢
float value = cos( (90 * PI / 180 ); // == 6.1 etc... and not 0?
如果我在cos(90)
的窗口中使用科学计算器,我会得到零。然而作为一个实验,当我按cosh(90)
时,我得到了相同的6.1等...在C ++中调用函数的值给了我。
任何想法是怎么回事?这是我现在的代码......
我问的基本原因是为什么C ++中的cos(90 degrees)
与在Windows计算器上执行cosh(90)
的数字相同。不管怎样cos(90 degrees)
不应该为零?
答案 0 :(得分:3)
所以你没有真正得到6.1(大于1的余弦值/正弦值只能用于某些复数),但6.1 * 10 ^ -17。问题是浮点数不是精确值(本质上 - 这就是base-2表示的工作方式),数学函数也不会返回精确值 - 它们使用各种近似公式来计算值 - don不能指望它们是准确的。