为了账号安全,请及时绑定邮箱和手机立即绑定

如何在JavaScript中将数字格式化为美元货币字符串?

如何在JavaScript中将数字格式化为美元货币字符串?

aluckdog 2019-05-24 13:58:09
如何在JavaScript中将数字格式化为美元货币字符串?我想用JavaScript格式化价格。我想要一个函数,它接受一个float参数并返回如下string格式:"$ 2,500.00"最好的方法是什么?

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

Intl.numberformat

Javascript有一个数字格式化程序(Internationalization API的一部分)。

// Create our number formatter.var formatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',});formatter.format(2500); /* $2,500.00 */

JS小提琴

用于undefined代替第一个参数('en-US'在示例中)以使用系统区域设置(如果代码在浏览器中运行,则为用户区域设置)。

Intl.NumberFormat与Number.prototype.toLocaleString

最后一点,将其与旧版本进行比较。toLocaleString。它们都提供基本相同的功能。但是,toLocaleString在其旧版本(pre-Intl)中实际上并不支持区域设置:它使用系统区域设置。因此,请确保您使用的是正确的版本(MDN建议检查是否存在Intl)。此外,对于单个项目,两者的性能相同,但如果您要格式化大量数字,则使用Intl.NumberFormat速度要快70倍。以下是使用方法toLocaleString

(2500).toLocaleString('en-US', {
  style: 'currency',
  currency: 'USD',}); /* $2,500.00 */

关于浏览器支持的一些注意

  • 如今,浏览器支持不再是一个问题,在美国/欧盟有97%的支持

  • 对于世界其他地区(92%支持),支持方面最大的违法者是UC Mobile(远离那个)和Opera Mini(设计残缺)

  • 有一个垫片支持旧版浏览器

  • 有关更多信息,请查看CanIUse


查看完整回答
反对 回复 2019-05-24
?
呼唤远方

TA贡献1856条经验 获得超11个赞

查看JavaScript Number对象,看看它是否对您有所帮助。

  • toLocaleString() 将使用特定于位置的千位分隔符格式化数字。

  • toFixed() 将数字四舍五入到特定的小数位数。

要同时使用这些值,必须将其类型更改回数字,因为它们都输出一个字符串。

例:

Number(someNumber.toFixed(1)).toLocaleString()


查看完整回答
反对 回复 2019-05-24

添加回答

代码语言

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信