1.看截图的结果,Math。sin(Math.PI)竟然并不是等于0
为什么呢?
1、Math.sin() 的参数,必须是一个以弧度表示的角,角度数×Math.PI/180即为当前角度数的弧度值。30度角的sin()的写法为:Math.sin(30*Math.PI/180)
2、180度转换成弧度理论上等于Math.PI,但由于cpu在运算的时候,会进行近似处理,所以并不相等。
3、常规代数里,是等于0,但是cpu运算的时候,只是近似与0
4、计算机语言数值型数据都是二进制表达的,所以在进行浮点计算时候是很难精确的,Math.sin(Math.PI)是通过微积分计算公式计算出来的,会存在精度上面的误差结果是:1.2246063538223772e-16
综上,浮点数的运算,往往并不是我们期望的结果,可以通过Math.round() 函数来解决。
所以,如下图,才能得到我们要的结果: