imToken 官网|以太坊和比特币区块链钱包

JS数字转货币格式的几种实用写法

JS数字转货币格式的几种实用写法

做前端开发的朋友应该都遇到过这个需求:后端返回一个数字,比如12800,页面要显示成“¥12,800.00”。直接用字符串拼接当然能实现JS数字转货币格式的几种实用写法,但代码又长又容易出错。其实JavaScript自带的方法已经能解决大部分场景,关键是选对工具。

最推荐的做法是用toLocaleString。这个方法支持传入地区和货币参数,一行代码就能搞定:(12800).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' }),输出就是“¥12,800.00”。如果项目里需要频繁转换,可以封装成一个工具函数,把金额、币种、是否保留小数都作为参数传进去,这样全局复用起来特别顺手。

js数字转货币写法_toLocaleString金额转换_javascript货币格式化

Intl.NumberFormat是另一种更底层的方案,它和toLocaleString原理相同,但性能更好,适合在循环里处理大量数据。先创建一个格式化实例,再反复调用它的format方法,比每次重新解析参数要快不少。对于报表类页面,这种写法能明显减少卡顿感。

如果只想要千分位分隔符,不想要货币符号,可以手动写一个正则替换:num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')。这段代码很短,但要注意它只适用于整数部分,小数位需要单独处理。另外,负数、科学计数法这些边界情况也要提前考虑,不然线上容易出bug。

处理大额数字时,精度是个容易踩的坑。JavaScript的浮点数计算会丢失精度,比如0.1 + 0.2不等于0.3。建议在转换前先把数字转成整数分(元乘以100),计算完成后再格式化js数字转货币写法,或者直接引入decimal.js这类库。货币格式化看似简单,但涉及精度、兼容性和性能,最好在项目初期就统一封装好,避免每个页面各写一套。

分享:
扫描分享到社交APP