js数字转换货币格式,不用引库不用装包,这5种写法直接复制就能用
admin 2026年10月14日 14:59:38 imtoken官网入口 10
js数字转换货币格式,不用引库不用装包,这5种写法直接复制就能用
做前端这几年,金额显示是绕不开的需求。后台接口返回一个1234567.8,页面上要展示成"¥1,234,567.80",这就是典型的js数字转换货币格式场景。不引第三方库,原生JS就能搞定,下面说几个常用写法。
最快的写法是toLocaleString。调用num.toLocaleString('en-US', {minimumFractionDigits:2, maximumFractionDigits:2})js数字转换货币格式,直接输出"1,234,567.80",前面拼个货币符号就完事。IE11也能跑,兼容性没什么问题,老项目直接抄就行。

要更省事就用Intl.NumberFormat。new Intl.NumberFormat('zh-CN', {style:'currency', currency:'CNY'}).format(1234.5)直接输出"¥1,234.50"。货币符号、千分位、小数位数一行代码全搞定,不用自己拼字符串,代码也干净。
有个坑必须注意——浮点精度。0.1加0.2不等于0.3,直接调toFixed(2)偶尔蹦出"0.30000000000000004"这种鬼东西。正确做法是先做Math.round(num*100)/100修正js数字转换货币格式,不用引库不用装包,这5种写法直接复制就能用,再走格式化。金额运算永远别信浮点加减。
实际项目里我一般封装一个formatMoney(num, symbol)工具函数,内部走Intl.NumberFormat,外层做精度修正,再拼自定义货币符号。调用方只管传数字进去,格式统一在工具层维护,后续换币种改个配置就行。