【千分位处理函数(超详细注释)】千分位处理函数,只处理小数点左边的数字
如:12345.6789 处理为12,345.6789
若也要处理小数点右边的数字,这个方法也可以,只需要将下文的str2执行一次本方法,然后拼接结果即可。
希望能帮到你。
function thousandth (num) {
let str = num.toString() // 数字转字符串
let str2 = null
// 如果带小数点
if (str.indexOf('.') !== -1) { // 带小数点只需要处理小数点左边的
const strArr = str.split('.') // 根据小数点切割字符串
str = strArr[0]// 小数点左边
str2 = strArr[1]// 小数点右边
//如12345.678str=12345,str2=678
}
let result = ''// 结果
while (str.length > 3) { // while循环 字符串长度大于3就得添加千分位
// 切割法 ,从后往前切割字符串 ??
result = ',' + str.slice(str.length - 3, str.length) + result
// 切割str最后三位,用逗号拼接 比如12345 切割为 ,345
// 用result接收,并拼接上一次循环得到的result
str = str.slice(0, str.length - 3) // str字符串剥离上面切割的后三位,比如 12345 剥离成 12
}if (str.length <= 3 && str.length > 0) {
// 长度小于等于3 且长度大于0,直接拼接到result
// 为什么可以等于3 因为上面result 拼接时候在前面带上了‘,’
// 相当于123456 上一步处理完之后 result=',456' str='123'
result = str + result
}
// 最后判断是否带小数点(str2是小数点右边的数字)
// 如果带了小数点就拼接小数点右边的str2 ??
str2 ? result = result + '.' + str2 : ''
return result
}
推荐阅读
- 爱智JSRE开发需要注意什么()
- 手写
- Promise面试题思考延伸
- 面试官居然要我用JS代码计算LocalStorage容量!
- [记录] TypeError: Invalid attempt to spread non-iterable instance.
- 《重构 JavaScript》读后感和部分摘录
- DNS域名解析过程简述
- 如何实现一个简单的发布订阅模式
- 选择篇(041)-下面代码的输出是什么?