2012-11-15 18 views
0

我目前的解決方案不計算增加的​​船舶成本。我的情況不起作用,我可以用功能做類似的問題,但我想知道我在這裏出了什麼問題。Javascript:如果句子邏輯,我做錯了什麼?

<html> 
<script type="text/javascript"> 
var numOrdered = 0; 
var priceItem = 0; 
var shipCost = 0; 
var amtDue = 0; 
numOrdered = prompt("Enter the number ordered ",0); 
priceItem = prompt("Enter the price of the item ",0); 
amtDue = numOrdered * priceItem; 
if (amtDue > 1000) 
    { 
    shipCost = 0; 
    } 
else 
    { 
    shipCost = amtDue * .1; 
    } 
amtDue = amtDue + shipCost; 
document.write("You owe ", amtDue); 
</script> 
</html> 
+0

這看起來好像沒什麼問題。你會得到什麼不想要的輸出,以及輸入什麼? –

+0

你能想出一個更好的標題嗎? – Ben

+0

我做了一些修改,並做出了一個jsfiddle。 http://jsfiddle.net/Pg3wU/2/ 它似乎工作得很好:) – flexd

回答

0

它適用於我。我把你的代碼放在這裏:http://jsfiddle.net/XVzKb/

沒有變化 - 如果我輸入5,然後再次提示10頁面中顯示的總數是55,即5 * 10 * 1.1 = 55。請注意,如果您的輸入包含像$,非數字字符,那麼你就需要分析它像這樣:

number = parseInt(response.replace(/[^0-9]/g, ''), 10) 
0

我會檢查Chrome或Firefox中的開發人員工具,並使用console.log或放置一些中斷點以幫助您瞭解什麼是工作,什麼不是。這樣你就可以看到你的javascript或你的html文檔是否失敗。

這就是說,你正在比較字符串而不是數字,所以你會希望使用parseInt對你從提示中得到的值。

 
priceItem = parseInt(priceItem, 10);