js将数值转为万,亿,万亿并保留两位小数

    <script>
        function numberFormat(value) {
            let param = {}
            let k = 10000
            let sizes = ['', '万', '亿', '万亿']
            let i
            if (value < k) {
                param.value = value
                param.unit = ''
            } else {
                i = Math.floor(Math.log(value) / Math.log(k));
                param.value = ((value / Math.pow(k, i))).toFixed(2);
                param.unit = sizes[i];
            }
            return param;
        }
        console.log(numberFormat(123456789))
    </script>
  • 方法解释
    Math.floor() 不为整数数字【向下取整】
    Math.log() 取数字的对数 通常为Math.log(y)/Math.log(x) 取以x为底y的对数
    Math.pow(x,y) 取x为底数的y次幂
    toFiexd(x) 不为整数数字,四舍五入取x位小数

  • 思路解释
    1.没过万数字直接展示
    2.过万函数,i确定他的单位是万,亿还是万亿,value是确定这个数字是否有小数部分,是小数部分要取到小数,四舍五入。
    没有小数部分就是00填补,不要00填补就用Number(xxx.toFixed(2))处理

原文地址:https://www.cnblogs.com/chyshy/p/14841848.html