我有以下JavaScript语法:

var discount = Math.round(100 - (price / listprice) * 100);

这是整数。我如何返回两个小数点后的结果?


当前回答

下面是一个工作示例

var value=200.2365455;
result=Math.round(value*100)/100    //result will be 200.24

其他回答

下面是一个工作示例

var value=200.2365455;
result=Math.round(value*100)/100    //result will be 200.24

尝试使用discount.toFixed(2);

要得到两个小数的结果,你可以这样做:

var discount = Math.round((100 - (price / listprice) * 100) * 100) / 100;

要四舍五入的值乘以100以保留前两位数字,然后除以100以得到实际结果。

要处理四舍五入到任何小数点后数位的问题,包含2行代码的函数就足以满足大多数需求。下面是一些示例代码。



    var testNum = 134.9567654;
    var decPl = 2;
    var testRes = roundDec(testNum,decPl);  
    alert (testNum + ' rounded to ' + decPl + ' decimal places is ' + testRes);

    function roundDec(nbr,dec_places){
        var mult = Math.pow(10,dec_places);
        return Math.round(nbr * mult) / mult;
    }

最快的方式-比toFixed()快:

两位小数

x      = .123456
result = Math.round(x * 100) / 100  // result .12

三位小数

x      = .123456
result = Math.round(x * 1000) / 1000      // result .123