2014-01-10 77 views
-1
var money = prompt("Enter an amount of money"); 
money = parseFloat(money); 
var months = prompt("Enter how long you will be investing for in months"); 
months = parseInt(months); 
months = Math.round(months); 
var interest = prompt("Enter an interest rate you would like to test your investment at"); 
interest = parseFloat(interest); 
console.log(months); 

爲什麼這段代碼無論什麼時候都要捨去幾個月?我有什麼不同的做法?爲什麼這段代碼沒有正確舍入數字

+3

因爲你,當你說'parseInt函數(月)截斷月'? – cHao

+0

重複,有很多關於此問題的答案:http://stackoverflow.com/questions/7342957/how-do-you-round-to-1-decimal-place-in-javascript/7343013#7343013 – jcollum

+0

RTFM - https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt。 「parseInt將數字截斷爲整數值。」 – j08691

回答

2

函數parseInt將數字轉換爲一個不支持小數(小數)的整數。

months = parseInt(months); 
months = Math.round(months); 

使用parseFloat這裏來代替:

months = parseFloat(months); 
months = Math.round(months); 
0

爲什麼你需要舍入INT擺在首位?它應該始終是一個整數,對吧?

這就是說,從來沒有使用parseInt同時沒有指定的基數,而你的情況應該是10

months = parseInt(months, 10); 
+0

剛開始我也有點被拋出,但似乎他必須允許輸入一個小數的月份。只有這個問題有道理。奇怪。 – crush

+0

'始終指定此參數以消除讀者的困惑並保證可預測的行爲。當不指定基數時,不同的實現會產生不同的結果 – crush

相關問題