Javascript 算术运算符的不稳定行为
我有一个JavaScript程序,假设它可以从用户输入(2个数字,四个运算符之一-+,-,/,*)进行非常简单的数学运算。问题是结果不稳定(可能不是最好的词,因为有一个模式,但在术语之前),我不知道为什么 我所说的不稳定是指,例如,如果你从5+5求和开始,它将产生10,正如预期的那样,但是如果你用5+6再尝试一次,你将得到12,如果你尝试5+7,结果将是14,依此类推 你知道为什么会这样吗?代码如下:Javascript 算术运算符的不稳定行为,javascript,arithmetic-expressions,Javascript,Arithmetic Expressions,我有一个JavaScript程序,假设它可以从用户输入(2个数字,四个运算符之一-+,-,/,*)进行非常简单的数学运算。问题是结果不稳定(可能不是最好的词,因为有一个模式,但在术语之前),我不知道为什么 我所说的不稳定是指,例如,如果你从5+5求和开始,它将产生10,正如预期的那样,但是如果你用5+6再尝试一次,你将得到12,如果你尝试5+7,结果将是14,依此类推 你知道为什么会这样吗?代码如下: <HEAD> <h2>A simple JavaScript pow
<HEAD>
<h2>A simple JavaScript powered calculator</h2>
<INPUT value="Enter a number" id="input1"></INPUT>
<SELECT id = "operator">
<option id="choose" >choose </option>
<option id="sum" value="+">sum</option>
<option id="subtraction" value="-">subtraction</option>
<option id="division" value="/">division</option>
<option id="multiplication" value="*">multiplication</option>
</SELECT>
<INPUT value="Enter a number" id="input2"></INPUT>
<INPUT value= "calculate" type="button" onclick=result()></INPUT>
<INPUT id="outputfield" type="text"></INPUT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
function sum(number, number) {return number + number};
function subtraction(number, number) {return number - number};
function division(number, number) {return number / number};
function multiplication(number, number) {return number * number};
function result(){if (document.getElementById("operator").value === document.getElementById("sum").value) {console.log("its a +!"), document.getElementById("outputfield").value =
sum(parseInt(document.getElementById("input1").value), parseInt(document.getElementById("input2").value));}
else if (document.getElementById("operator").value === document.getElementById("subtraction").value) {console.log("its a -!"), document.getElementById("outputfield").value =
subtraction(parseInt(document.getElementById("input1").value), parseInt(document.getElementById("input2").value));}
else if (document.getElementById("operator").value === document.getElementById("division").value) {console.log("its a /!"), document.getElementById("outputfield").value =
division(parseInt(document.getElementById("input1").value), parseInt(document.getElementById("input2").value));}
else if (document.getElementById("operator").value === document.getElementById("multiplication").value) {console.log("its a *!"), document.getElementById("outputfield").value =
multiplication(parseInt(document.getElementById("input1").value), parseInt(document.getElementById("input2").value));}
else if (document.getElementById("operator").value === document.getElementById("choose").value) {console.log("please choose an operator");}
}
</SCRIPT>
<p> </>
<p> April 2016 </p>
</BODY>
一个简单的JavaScript计算器
选择
总和
减法
分开
乘法
函数和(数,数){返回数+数};
函数减法(数,数){返回数-数};
功能划分(编号,编号){返回编号/编号};
函数乘法(number,number){返回数*number};
函数结果(){if(document.getElementById(“运算符”).value==document.getElementById(“sum”).value{console.log(“它的a+!”),document.getElementById(“outputfield”)。value=
sum(parseInt(document.getElementById(“input1”).value),parseInt(document.getElementById(“input2”).value));}
else if(document.getElementById(“运算符”).value==document.getElementById(“减法”).value){console.log(“其a-!”),document.getElementById(“outputfield”)。value=
减法(parseInt(document.getElementById(“input1”).value),parseInt(document.getElementById(“input2”).value));}
else如果(document.getElementById(“operator”).value==document.getElementById(“division”).value){console.log(“它的a/!”),document.getElementById(“outputfield”)。value=
分部(parseInt(document.getElementById(“input1”).value),parseInt(document.getElementById(“input2”).value));}
else如果(document.getElementById(“运算符”).value==document.getElementById(“乘法”).value){console.log(“它的a*!”),document.getElementById(“outputfield”)。value=
乘法(parseInt(document.getElementById(“input1”).value),parseInt(document.getElementById(“input2”).value));}
else if(document.getElementById(“运算符”).value==document.getElementById(“选择”).value){console.log(“请选择运算符”);}
}
2016年4月
提前感谢您对您的功能的任何提示,例如:
function sum(number, number) {return number + number};
在两个参数中使用相同的名称,即编号
,当您尝试添加5和6时,名称编号
被分配值6
,并且由于6+6=12
结果是正确的
请尝试以下方法:
function sum(number1, number2) {return number1 + number2};
您的功能,例如:
function sum(number, number) {return number + number};
在两个参数中使用相同的名称,即编号
,当您尝试添加5和6时,名称编号
被分配值6
,并且由于6+6=12
结果是正确的
请尝试以下方法:
function sum(number1, number2) {return number1 + number2};
是 啊您认为这些函数将返回什么?这没有任何意义。如果
a
是5而a
是2,那么a+a
是什么<代码>10<代码>4?老实说,这是我一整天看到的最有趣的事情。@SverriM.Olsen,该睡觉了:)谢谢你费心指出显而易见的事实:)是的。您认为这些函数将返回什么?这没有任何意义。如果a
是5而a
是2,那么a+a
是什么<代码>10<代码>4?老实说,这是我一整天看到的最有趣的事情。@SverriM.Olsen,该睡觉了:)谢谢你费心指出显而易见的事实:)另一个谢谢你没有对我进行讽刺;)显然,这里有些人认为每个人都是有经验的程序员!另一个感谢是你没有讽刺我;)显然,这里有些人认为每个人都是有经验的程序员!