前言
最近刚好做到项目,有个数字过大直接展现万,亿等单位的缩略展示。上网查看我竟然把我高中数学的log运算都捡起来了🤣,好神奇!果然代码的底层是数学,学遍数理化走遍全天下,这句话不是没有道理😬
实现思路
实现思路我们应该很清晰,无非是两种情况,一种是不过【万】时候的正常展示和另一种过【万】之后的缩略展示
代码实现
说这些之前让我们来复习一下几个知识点
Math.floor() 不为整数数字【向下取整】
Math.log() 取数字的对数 通常为Math.log(y)/Math.log(x) 取以x为底y的对数
Math.pow(x,y) 取x为底数的y次幂
toFiexd(x) 不为整数数字,四舍五入取x位小数
复制代码
要是此处跟我一样忘记log运算的我是log运算链接 ,附上链接,去好好复习🤞
解释到这里想必大家也看懂了这个函数: 两种情况:
1.没过万数字直接展示
2.过万函数,i确定他的单位是万,亿还是万亿 , value是确定这个数字是否有小数部分,是小数部分要取到小数,四舍五入。
没有小数部分就是00填补
复制代码
当然到这里,我也想到了用更细的划分,十万百万等,那就趋近于更细区间,也就是要判断【1,2】区间的小数问题,细节会更加繁琐,如果有写过的小伙伴欢迎分享和讨论🤘
阿里面试题
昨天看到一道阿里面试题,和这个算是属于一类吧:
在这里也直接分享一下
var num = 123456789
//格式化千分位输出
num.toLocaleString()
//格式化为千分位带$符号输出
num.toLocaleString("en-US",{style:"currency",currency:"USD"})
//格式化为带¥符号输出
num.toLocaleString("zh-Hans-CN",{style:"currency",currency:"CNY"})
复制代码
结束
有前端或者更方向研究的大佬们,喜欢探讨的可以加微信15754980373🤞,欢迎!