美文网首页
>>>>> 浮点数保留小数点后两位的几种方法

>>>>> 浮点数保留小数点后两位的几种方法

作者: 風隨風去 | 来源:发表于2016-11-28 21:18 被阅读0次

    保留两位小数

    • 四舍五入:
    var num =2.446242342;
    num = num.toFixed(2); // 输出结果为 2.45
    
    • 不四舍五入:
    • 先把小数变整数,再转化
    Math.floor(15.7784514000 * 100) / 100  // 输出结果为 15.77
    
    • 当作字符串,使用正则匹配
    Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) 
    // 输出结果为 15.77,不能用于整数如 10 必须写为10.0000 
    

    数值取舍

    • 保留整数
    parseInt(5/2)//2
    
    • 向上取整,有小数,整数就加1
    Math.ceil(5/2)//3
    
    • 四舍五入
    Math.round(5/2)//3
    Math.round(5/3)//2
    
    • 向下取整
    Math.floor(5/2)//2
    

    如果没有明确规定一定要保留两位的,那就一般都不会有太大问题的l了,那么问题来了,对于要强制保留两位的,我们又该怎么办呢?特别是那种末尾还是0的,这不是又头大了?不要担心,上有政策,下有对策嘛

    function keepTwoDecimalFloat(x) {
        var floatX = parseFloat(x);
        if (isNaN(floatX)) {
              return false;
        } 
        var floatX = Math.round(x * 100) / 100;
        var strX = floatX.toString(); 
        var posDecimal = strX.indexOf('.');
        if (posDecimal < 0) { 
                posDecimal = strX.length; 
                strX += '.';
        }
        while (strX.length <= posDecimal + 2) { 
                strX += '0'; 
        } 
        return strX;
    }
    

    相关文章

      网友评论

          本文标题:>>>>> 浮点数保留小数点后两位的几种方法

          本文链接:https://www.haomeiwen.com/subject/znnopttx.html