【发布时间】:2015-05-23 21:03:26
【问题描述】:
我正在尝试用 JavaScript 构建一个计算器。除了 sin 和 cos 外,它都有效,它们会给出错误和意想不到的结果。
Sin 和 Cos 给出错误的结果
sin(180)=0
在代码中 sin(180)=-0.8011526357338304
我的代码如下图,
JavaScript:
function d(val){
if(val=="sin"){
var x=document.getElementById("d").value;
document.getElementById("d").value=Math.sin(x);
}
if(val=="cos"){
var x=document.getElementById("d").value;
document.getElementById("d").value=Math.cos(x);
}
if(val=="envers"){
var x=document.getElementById("d").value;
document.getElementById("d").value=eval(1/x);
}
if(val=="sqrt"){
var x=document.getElementById("d").value;
document.getElementById("d").value=Math.sqrt(x);
}
}
function c(val){
document.getElementById("d").value=val;
}
function v(val){
document.getElementById("d").value+=val;
}
function e(){
try {
c(eval(document.getElementById("d").value))
}
catch(e){
c('Error')
}
}
HTML:
<div class="display">
<p>
<input type="text" readonly size="14" id="d">
<input type="button" class="button black" value="C" onclick='c("")'>
</p>
</div>
<div class="keys">
<p>
<input type="button" class="button black" value="1" onclick='v("1")'>
<input type="button" class="button black" value="2" onclick='v("2")'>
<input type="button" class="button black" value="3" onclick='v("3")'>
<input type="button" class="button pink" value="+" onclick='v("+")'>
</p>
<p>
<input type="button" class="button black" value="4" onclick='v("4")'>
<input type="button" class="button black" value="5" onclick='v("5")'>
<input type="button" class="button black" value="6" onclick='v("6")'>
<input type="button" class="button pink" value="-" onclick='v("-")'>
</p>
<p>
<input type="button" class="button black" value="7" onclick='v("7")'>
<input type="button" class="button black" value="8" onclick='v("8")'>
<input type="button" class="button black" value="9" onclick='v("9")'>
<input type="button" class="button pink" value="*" onclick='v("*")'></p>
<p>
<input type="button" class="button black" value="." onclick='v(".")'>
<input type="button" class="button black" value="0" onclick='v("0")'>
<input type="button" class="button orange" value="=" onclick='e()'>
<input type="button" class="button pink" value="/" onclick='v("/")'>
</p>
<p>
<input type="button" class="button black" value="sin" onclick='d("sin")'>
<input type="button" class="button black" value="cos" onclick='d("cos")'>
<input type="button" class="button orange" value="1/x" onclick='d("envers")'>
<input type="button" class="button pink" value="sqrt" onclick='d("sqrt")'>
</p>
</div>
请告诉我如何求 sin 和 cos 的值
【问题讨论】:
-
三角函数作用于以 弧度 为单位测量的角度,而不是度数。 180 度是 π 弧度,所以在调用函数之前将角度乘以
(π / 180)。 -
你可以为数字定义一个方便的
toRad()方法as explained here -
我多次使用它,但它给出了错误的结果 if(val=="sin") { var x=document.getElementById("d").value; x=x*(数学.PI/180); document.getElementById("d").value=Math.sin(x); }
-
“错误结果”究竟是什么?
-
sin(180)=1.2246467991473532e-16
标签: javascript