Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 算术运算符的不稳定行为_Javascript_Arithmetic Expressions - Fatal编程技术网

Javascript 算术运算符的不稳定行为

Javascript 算术运算符的不稳定行为,javascript,arithmetic-expressions,Javascript,Arithmetic Expressions,我有一个JavaScript程序,假设它可以从用户输入(2个数字,四个运算符之一-+,-,/,*)进行非常简单的数学运算。问题是结果不稳定(可能不是最好的词,因为有一个模式,但在术语之前),我不知道为什么 我所说的不稳定是指,例如,如果你从5+5求和开始,它将产生10,正如预期的那样,但是如果你用5+6再尝试一次,你将得到12,如果你尝试5+7,结果将是14,依此类推 你知道为什么会这样吗?代码如下: <HEAD> <h2>A simple JavaScript pow

我有一个JavaScript程序,假设它可以从用户输入(2个数字,四个运算符之一-+,-,/,*)进行非常简单的数学运算。问题是结果不稳定(可能不是最好的词,因为有一个模式,但在术语之前),我不知道为什么

我所说的不稳定是指,例如,如果你从5+5求和开始,它将产生10,正如预期的那样,但是如果你用5+6再尝试一次,你将得到12,如果你尝试5+7,结果将是14,依此类推

你知道为什么会这样吗?代码如下:

<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,该睡觉了:)谢谢你费心指出显而易见的事实:)另一个谢谢你没有对我进行讽刺;)显然,这里有些人认为每个人都是有经验的程序员!另一个感谢是你没有讽刺我;)显然,这里有些人认为每个人都是有经验的程序员!