Javascript保持小数位

时间:2012-02-16 15:26:39

标签: javascript radio-button

我使用以下代码从属性data-price获取价格,该属性分配给单选按钮,如下所示:data-price="25.00"

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 );
}
})

我得到的问题是,当它在下面示例的输入框中显示它时,它只会显示25我需要它说25.00有没有办法解决这个问题?

3 个答案:

答案 0 :(得分: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));
    });
});

答案 1 :(得分:2)

尝试分配tot.toFixed(2)。希望有所帮助!

答案 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将其转换为字符串。