javascript中Math.sin运算问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中Math.sin运算问题相关的知识,希望对你有一定的参考价值。

1.javascript中Math.sin()运算是不是应该使用弧度?
2.180度转换成弧度是不是等于Math.PI?

3.180度的sin值是不是等于0?
4.如果上面3个问题都是正确的,Math.sin(Math.Pi)为什么不等于0?

1.对
2.对
3.对

4.计算机语言数值型数据都是二进制表达的,所以在进行浮点计算时候是很难精确的,Math.sin(Math.PI)是通过微积分计算公式计算出来的,会存在精度上面的误差结果是:1.2246063538223772e-16
参考技术A 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);本回答被提问者和网友采纳

Javascript Math

Math 对象用于执行数学任务

使用Math的属性和方法的语法:

var pi_value = Math.PI;

var sqrt_value = Math.sqrt(15);

注释:Math对象并不像Date和String那样是对象的类,因此没有构造函数Math(),像Math.sin()这样的函数只是函数,不是某个对象的方法,您无需创建它,通过Math作为对象使用就可以调用其所有属性和方法。

 

Math对象属性

E 返回算数常量 e,即自然对数的底数(约等于2.718)。

LN2 返回2的自然对数(约等于0.693)。

LN10 返回10的自然对数(约等于2.302)。

LOG2E 返回以2为底的e的对数(约等于1.414)。

LOG10E 返回以10为底的e的对数(约等于0.434)。

PI 返回圆周率(约等于3.14159)。

SQRT1_2 返回2的平方根的倒数(约等于0.707)。

SQRT2 返回2的平方根(约等于1.414).

Math对象方法

abs(x)返回数的绝对值

acos(x)返回数的反余弦值

asin(X)返回数组反正弦值

atan(x)以介于-PI/2 与PI/2 弧度之间的数值来返回x的反正切值

atan2(y,x)返回从x轴到点(X,y)的角度(介于-PI/2 与PI/2 弧度之间)。

ceil(x)对数进行上舍入

cos(x)返回数的余弦

exp(x)返回e的指数

floor(x)对数的进行下舍入

log(x)返回数的自然对数(底为e)

max(x,y)返回x和y的最高值

min(x,y)返回x和y的最低值

pow(x,y)返回x的y次幂

random()返回0-1之间的随机数

round(x)把数四舍五入为最接近的整数

sin(x) 返回输的正弦

sqrt(x)返回数的平凡根

tan(x)返回角的正切

toSource()返回该对象的源代码

valueOf()返回Math对象的原始值

 

以上是关于javascript中Math.sin运算问题的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中弧度和角度的转换

JavaScript内置对象及相关练习(math对象,date对象,string对象,array对象)

三角函数与JavaScript

ufunc函数

javaScript中Math内置对象基本方法入门

Javascript Math