尝试使用jQuery将数字格式化为两位小数

10

可能是重复问题:
JavaScript:使用恰好两个小数位格式化数字

在使用变量时有点混乱,现在似乎无法使计算工作?

 $("#discount").change(function(){
            var list = $("#list").val();
            var discount = $("#discount").val();
            var price = $("#price");
            var temp = discount * list;
            var temp1 = list - temp;
            var total = parseFloat($(this).temp1()).toFixed(2);

            price.val(total);       
 });
2个回答

29

$(this).temp1()看起来特别不合适,我认为你只是想使用temp1变量。由于它已经是一个数字,所以你不需要在上面使用parseFloat

$("#discount").change(function() {
    var list = $("#list").val();
    var discount = $("#discount").val();
    var price = $("#price");
    var temp = discount * list;
    var temp1 = list - temp;
    var total = temp1.toFixed(2);

    price.val(total);
});

5

我建议您在计算之前先将字符串转换为数字。例如,

var list = parseFloat($("#list").val());
var discount = parseFloat($("#discount").val());
var price = $("#price");
var total = list - (discount * list);
price.val(total.toFixed(2));

此外,如果折扣是以百分比表示(例如,假设为25),则必须除以100,即list - (discount/100 * list)

另外,参考这个SO线程,人们已经警告不要使用ToFixed:如何在javascript中格式化浮点数?


1
应该是 total.toFixed(2) 而不是 total.ToFixed(2)。 - JasonH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接