【问题标题】:Trying to format number to 2 decimal places jQuery [duplicate]尝试将数字格式化为小数点后 2 位 jQuery [重复]
【发布时间】:2026-01-15 14:45:01
【问题描述】:

可能重复:
JavaScript: formatting number with exactly two decimals

使用变量有点混乱,现在似乎根本无法进行计算!?

 $("#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);       
 });

【问题讨论】:

    标签: javascript jquery number-formatting


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      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)

      顺便说一句,请参考这个人们曾警告不要使用 ToFixed 的 SO 线程:How to format a float in javascript?

      【讨论】:

      • 应该是 total.toFixed(2) 而不是 total.ToFixed(2)