舍入值为2位小数javascript

Dar*_*rio 18 jquery rounding

我的最终值有一个小问题,我需要舍入到2位小数.

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));
            });
        });
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

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

Phr*_*ogz 72

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

var priceString = someValue.toFixed(2);
Run Code Online (Sandbox Code Playgroud)

@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"
    
    Run Code Online (Sandbox Code Playgroud)

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

  • `toFixed(2)`回合1.025到1.02.这是不正确的.如果你使用1.026它正确地舍入而不是5,因此这种舍入是错误的. (2认同)

Dav*_*vid 10

只需将数字乘以100,即可将结果数除以100.

  • 当然,除非增加它的大小,否则数字可能会溢出. (4认同)