21

我对最终值有一个小问题,我需要四舍五入到小数点后两位。

var pri='#price'+$(this).attr('id').substr(len-2);
            $.get("sale/price?output=json", { code: v },
               function(data){
                 $(pri).val(Math.round((data / 1.19),2));
            });
        });

任何帮助表示赞赏。

解决方案:$(pri).val(Math.round((data / 1.19 * 100 )) / 100);

4

2 回答 2

77

如果您希望将其视觉格式化为两位小数作为字符串(用于输出),请使用toFixed()

var priceString = someValue.toFixed(2);

@David 的回答有两个问题:

  1. 它将结果保留为浮点数,因此可以显示具有许多小数位的特定结果,例如,134.1999999999而不是"134.20".

  2. 如果您的值是整数或四舍五入到十分之一,您将看不到额外的十进制值:

    var n = 1.099;
    (Math.round( n * 100 )/100 ).toString() //-> "1.1"
    n.toFixed(2)                            //-> "1.10"
    
    var n = 3;
    (Math.round( n * 100 )/100 ).toString() //-> "3"
    n.toFixed(2)                            //-> "3.00"
    

而且,正如您在上面看到的,使用toFixed()也更容易打字。;)

于 2013-02-02T21:45:31.000 回答
13

只需将数字乘以 100,四舍五入,然后将所得数字除以 100。

于 2013-02-02T21:33:51.143 回答