2011-09-01 75 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。 –