Javascript简单的数学错误

Sea*_*ean 1 javascript math

我无法理解造成这种情况的原因,虽然数学从来都不是我的专业,所以任何帮助都会受到赞赏.我的简单等式分为两部分:

答案1)226 - [值]乘以.9

答案2)226 - [值]乘以.55

如果您使用40作为输入值,我的计算器会说:

答案1)226 - 40 = 186*.9 = 167.4

答案2)226 - 40 = 186*.55 = 102.3

但我的代码说:

答案1)190

答案2)204

我的代码:

HTML:
<input id="HR"size="4" value="" /><span id="number"></span>
 Answer 1 <strong><span id="answer1"></span></strong><br>
 Answer 2 <strong><span id="answer2"></span></strong>
</p>

<a href="#" class='THR'>click to calculate</a>

Script:
 <script type="text/javascript">
     $('a.THR').click(function() {
     var value = parseInt( $( "#HR" ).val() );
     $( "#answer1" ).html( 226 - value * 0.9 );
     $( "#answer2" ).html( 226 - value * 0.55 );
     return false;
   });
 </script>
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 6

你忘记了操作的顺序.乘法具有比加法/减法更高的优先级.把括号括在你的周围226-value

 $( "#answer1" ).html( (226 - value) * 0.9 );
 $( "#answer2" ).html( (226 - value) * 0.55 );
Run Code Online (Sandbox Code Playgroud)

重读你的问题,我不确定你想要的结果到底是什么.如果你想先进行乘法,然后再进行减法,你不需要括号,尽管写226 - (value * 0.9)清楚可能会有所帮助.您的计算器上发生的事情是您正在键入226 - value,然后将该结果乘以您的十进制数.所以上面的代码(226 - value) * 0.9代表你的输入.从最终用户的角度来描述您尝试做什么可能有助于确定您的括号去哪里.


ell*_*ben 5

括号:你需要它们.

 $( "#answer1" ).html( (226 - value) * 0.9 );
 $( "#answer2" ).html( (226 - value) * 0.55 );
Run Code Online (Sandbox Code Playgroud)