如题,执行这句
Math.sin(Math.PI/2)
结果为:6.123233995736766e-17,这应该是一个无线接近0的数,意义是对的,但更希望结果是0才对.
要使用
Math.round
才能能得到预期结果0,请问,难道每次使用都需要舍入吗,四舍五入是不是最好的方式?为何js中是这样设计的?
有没有js大佬解答一下.
如题,执行这句
Math.sin(Math.PI/2)
结果为:6.123233995736766e-17,这应该是一个无线接近0的数,意义是对的,但更希望结果是0才对.
要使用
Math.round
才能能得到预期结果0,请问,难道每次使用都需要舍入吗,四舍五入是不是最好的方式?为何js中是这样设计的?
有没有js大佬解答一下.
首先应该是,余弦计算是基于圆的,但是目前的结论是PI是个无限不循环小数,我估计这个API设计的时候引用的是当时最高精确度的割圆精度,也可能不是最高,但这个API就是取了这个精确值。
我的建议是你手动设置一个精确度来四舍五入,比如小数点后面5位
自己定义一个全局的PI用 这个应该是最合适的办法了