<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))处理