2013-04-17 46 views
0

我這樣做:使用toFixed(2)在javascript是生產undesirred結果

var refundAmount = parseFloat($('#refundAmount2').val().replace('$','')); 
var refundReceived = $('#refundReceived'); 
var remainderAmount = refundAmount-parseFloat(refundReceived.val().replace('$','')); 

alert(parseInt(remainderAmount).toFixed(2)); 

不管我做什麼,結果總是有2位小數是」 .00' 結束。所以如果第一個數字是200.12,第二個數字是100.08,它應該用100.04提醒我,但是我得到100.00。任何想法爲什麼發生這種情況?謝謝大家!

+1

'parseInt(remainderAmount)'將數字轉換爲整數,然後'toFixed(2)'將'.00'追加到它。這可能是不受歡迎的,但這是可預測的結果。我想你想'alert(parseFloat(remainderAmount.toFixed(2)));' – Ejaz

回答

3

您使用parseInt將該數字轉換爲整數,然後使用toFixed(2)將其轉換爲具有2位小數的數字。將2個小數位添加到整數將始終導致.00

嘗試

alert(remainderAmount.toFixed(2)); 

DEMO

+0

那裏沒有必要使用parseFloat,因爲remainingAmount已經是一個數字了。 – epascarello

+0

@epascarello是的,沒錯。 – Antony

+0

我是這樣一個塗料...謝謝你們! – Damien

0

你得到它作爲int與parseInt(),然後做toFixed()。所以你要在int上加小數位。

+0

感謝您的幫助:) – Damien

相關問題