评论

优雅的处理人民币单位

如何优雅的处理人民币单位

需求如下

当输入数字的时候,显示数字的最大单位
如: 1,000 在下方展示 千

实现思路

  • 设置单位常量
  • 定位输入数字属于哪一阶段
10 = 10*1 == 1e1
100 = 10*10 == 1e2
1000 = 10*10*10 == 1e3
Math.log10(10) == 1
Math.log10(100) == 2
Math.log10(1000) == 3

根据上面分析10 的幂运算 和对数运算 对应关系
我们定义一个常量

 const charCn = ['个','十','百','千','万','十万','百万','千万','亿','十亿','百亿','千亿','兆','十兆','百兆','千兆','京']

获取值的单位下标

 Math.floor(Math.log10(1))   // 向下取整(取10的对数) 得到的既是 对应值的下标

最后,我们封装个函数

function getCharName(value) {
      const charCnIndex = Math.floor(Math.log10(value)) 
      return charCn[charCnIndex]
    }
最后一次编辑于  2022-08-27  
点赞 1
收藏
评论
登录 后发表内容