为什么剂量 cos(90) 不等于零

Why dose cos(90) not equal zero?

本文关键字:不等于 等于零 cos 为什么      更新时间:2023-10-16

我知道cos();在C++中使用弧度是正确的..你可以得到弧度..

 (angle * PI ) / 180;

那么为什么

 float value = cos( (90 * PI / 180 ); // == 6.1 etc... and not 0?

如果我在窗口中使用科学计算器cos(90)我得到零。 然而,作为一个实验,当我推cosh(90)时,我得到了同样的 6.1 等......在C++中调用函数给我的价值。

知道发生了什么吗? 这是我现在的代码...

http://ideone.com/YQgLz

我基本上要问的是,为什么cos(90 degrees) C++返回的数字与在Windows计算器上执行cosh(90)相同的数字。 反正cos(90 degrees)不应该是零吗?

所以你并没有真正得到 6.1(大于 1 的余弦/正弦值只对某些复数是可能的),而是 6.1 * 10^-17。问题是浮点数不是精确的值(本质上 - 这就是基数 2 表示的工作方式),数学函数也不会返回精确的值 - 它们使用各种近似形式来计算值 - 永远不要期望它们是精确的。