2011-09-01 101 views
1

我不明白是什么造成这种情况,尽管数学从来不是我的专业,所以任何帮助表示赞赏。我简单的等式分为两个部分:Javascript简单的数学错误

答案1)226 - [值]乘以0.9

答案2)226 - [值]乘以0.55

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

答案1)226 - 40 = 186 * 0.9 = 167.4

答案2)226 - 40 = 186 * 0.55 = 102.3

但我的代码表示:

答案1)

答案2)

我的代码:

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> 
+3

操作顺序 – Drake

+0

请注意,语句'226-40 = 186 * .9'也是不正确的。 – pimvdb

+0

感谢您的咨询! – Sean

回答

6

您忘记了操作顺序。乘法的优先级高于加法/减法。把括号围绕你226-value

$("#answer1").html((226 - value) * 0.9); 
$("#answer2").html((226 - value) * 0.55); 

重读你的问题,我不知道究竟你想要的结果是什么。如果你想首先进行乘法运算,然后再进行减法运算,则不需要圆括号,但编写226 - (value * 0.9)以清楚说明可能会有所帮助。计算器上发生的情况是,您正在输入226 - value,然后将结果乘以小数。所以上面的代码(226 - value) * 0.9代表你的输入。从最终用户的角度来描述你想要做什么来确定你的括号所在的位置可能会有帮助。

+0

啊哈,谢谢! – Sean

+0

看起来像一个愚蠢的小东西可以忽略,但它可以产生巨大的影响。几年前我有一个客户,我们建立了一个库存系统。数据是由另一个开发人员构建的系统上传和定价的。在某些情况下,最终定价减少了1000美元。在检查了客户给我们的算法后,我发现开发者犯了一些操作错误。稍后一些括号中,客户非常高兴。 –

+1

@肖恩你问这个问题几次。你应该回去接受正确的回应,以帮助将来看到它的人。 – Dennis

5

括号:你需要他们。

$("#answer1").html((226 - value) * 0.9); 
$("#answer2").html((226 - value) * 0.55); 
+0

+1用于将您的答案表示为LOLCAT。 – FishBasketGordo

1

你的代码履行操作的标准顺序:

  • 括号,
  • Exponeniation,
  • Multiplcation /司
  • 加/减

...但你不是。将您的等式括起来以将顺序改变为您想要的。

+0

虽然JavaScript中没有指数运算符。 – pimvdb

3

乘法优先于减法。
因此,表达式将被解释为:

回答1)226 - ([值]由0.9乘以)
即G:

226 - (40 *0.9) = 226 - 36 = 190 

答案2)226 - ([值]乘以4.55)
如:

226 - (40 * .55) = 226 - 22 = 204 
1

这仅仅是一个订单中的操作问题(无关与jquery)。在加/减之前执行乘/除。所以:

226 - 40*.9 = 226 - 36 = 190 
1

在数学中,乘法优先于加法和减法。使用括号说明:

$("#answer1").html((226 - value) * 0.9); 
$("#answer2").html((226 - value) * 0.55); 
+0

我看到别人已经发布了正确的答案。 –

+0

是的,你必须在发帖后五秒内回答问题,否则你太晚了,哈哈。不过谢谢,我很欣赏它。 – Sean

+0

哈 - 这就是我喜欢的东西 - 很多好的建议。感谢upvoting。 –