javascript中Math.sin运算问题

1.javascript中Math.sin()运算是不是应该使用弧度?2.180度转换成弧度是不是等于Math.PI?3.180度的sin值是不是等于0?4.如果上面3个... 1.javascript中Math.sin()运算是不是应该使用弧度?
2.180度转换成弧度是不是等于Math.PI?

3.180度的sin值是不是等于0?
4.如果上面3个问题都是正确的,Math.sin(Math.Pi)为什么不等于0?
展开
 我来答
shy2850
2012-10-14 · TA获得超过6774个赞
知道大有可为答主
回答量:2505
采纳率:55%
帮助的人:1576万
展开全部
1.对
2.对
3.对

4.计算机语言数值型数据都是二进制表达的,所以在进行浮点计算时候是很难精确的,Math.sin(Math.PI)是通过微积分计算公式计算出来的,会存在精度上面的误差结果是:1.2246063538223772e-16
马可财经
推荐于2018-03-15 · TA获得超过742个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:260万
展开全部
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.round() 函数来解决。

例如,对比下面的两个结果,你会看明白的:
document.write(Math.sin(Math.PI) + "<br />");
document.write(Math.round(Math.sin(Math.PI)*1000000)/1000000);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式