js使用Math.round() 精确保留小数点后几位,同时小数为0的省略

js将 内存单位转换成对应的MB、GB,将个数单位转换成对应的万、百万、千万、亿

  • 不足GB的,取整数
  • 超过GB的,四舍五入保留一位小数。
  • 超过万级,保留一位小数。
// ifSQLmemory 是否是内存单位 true、false
    function unitChange(num, ifSQLmemory){
                num = parseFloat(num);
                if(ifSQLmemory){
                    if(num ||num == 0){
                        if(num >=1024){
                            return Math.round(num/1024 * 10) / 10 +"GB";
                        }else{
                            return Math.round(num) +"MB";
                        }
                    }else{
                        return "--";
                    }
                }else{
                    if(num ||num == 0){
                        if(num >=100000000){
                            return Math.round(num/100000000 * 10) / 10 +"亿个";
                        }else if(num >=10000000){
                            return Math.round(num/10000000 * 10) / 10 +"千万个";
                        }else if(num >=1000000){
                            return Math.round(num/1000000 * 10) / 10 +"百万个";
                        }else if(num >=10000){
                            return Math.round(num/10000 * 10) / 10 +"万个";
                        }else{
                            return Math.round(num) +"个";
                        }
                    }else{
                        return "--";
                    }
                }   
    }

小结点:

parseFloat判断下是不是个数字,非数字的NaN,布尔值为false。

内存的比例是 1024

js if条件语句防止跳楼冗余的条件参数

Math.round()方法:四舍五入,取得是整数不能精确小数位

Number.toFixed()方法,能保留小数点后面的指定位数,但是有这种情况,21.0,应该转换成21。

如何使用Math.round()保留1位小数?

先把数据扩大10倍四舍五入后在缩小10倍即可。

Math.round(num/10000 * 10) / 10
  • 同理,保留2位小数,就扩大100倍

你可能感兴趣的:(js使用Math.round() 精确保留小数点后几位,同时小数为0的省略)