今天看啥  ›  专栏  ›  WangYingYaTou

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

WangYingYaTou  · 掘金  ·  · 2020-03-10 07:04
阅读 4

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

前言

最近刚好做到项目,有个数字过大直接展现万,亿等单位的缩略展示。上网查看我竟然把我高中数学的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🤞,欢迎!




原文地址:访问原文地址
快照地址: 访问文章快照