2012-02-16 89 views
0

我用下面的下面的代碼從被分配給單選按鈕,像這樣的屬性data-price得到的價格:data-price="25.00"的Javascript保留小數點後一位

jQuery(document).ready(function($){ 
var frm = document.forms.myForm; 
frm.onchange = function(e) { 
var tot = 0; 
for(var i = 0, l = frm.elements.length; i < l; i++) { 
    if(frm.elements[i].checked) { 
     tot += parseFloat(frm.elements[i].getAttribute('data-price')); 
    } 
} 
document.getElementById('total').value = (tot); 
} 
}) 

我得到的問題是,當它dispalys它在下面的例子的輸入框中,它只會顯示25我需要它說25.00有沒有辦法解決這個問題?

+1

您是否嘗試過添加tot +「。00」? – 2012-02-16 15:27:46

+2

這實質上是一個重複的http://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascript – Jeff 2012-02-16 15:28:21

+0

快速谷歌的「JavaScript小數位」提出了一個整體提到toFixed()的頁面 – Dave 2012-02-16 15:30:21

回答

2
tot.toFixed(2) 

會給你結果。

而且由於你使用jQuery,你可以寫更多的jQuery代碼一樣,只是一個例子像下面,只是一個建議:

$(function() { 
    $('form[name="myForm"]').change(function() { 
     var tot = 0; 
     $('input:checked', this).each(function() { 
      tot += parseFloat($(this).data('price')); 
     }); 
     $('#total').val(tot.toFixed(2)); 
    }); 
}); 
2

嘗試分配tot.toFixed(2)。希望有所幫助!

1

JavaScript就無法顯示25.00,如果它是一個數字

console.log(25.00); 
alert(25.00) 

雙方將顯示25.它只能如果有後非零數字。

console.log(25.03); 

所以它轉換成數字進行計算,並在文本框中顯示了當使用.toFixed(2)其他人一樣在這裏建議。

document.getElementById('total').value = tot.toFixed(2); 

toFixed將其轉換爲字符串。