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

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

我想用JavaScript格式化价格。
我想要一个函数,它接受一个float参数并返回如下string格式:

"$ 2,500.00"

最好的方法是什么?


aluckdog
浏览 1249回答 3
3回答

哆啦的时光机

Intl.numberformatJavascript有一个数字格式化程序(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

呼唤远方

查看JavaScript Number对象,看看它是否对您有所帮助。toLocaleString() 将使用特定于位置的千位分隔符格式化数字。toFixed() 将数字四舍五入到特定的小数位数。要同时使用这些值,必须将其类型更改回数字,因为它们都输出一个字符串。例:Number(someNumber.toFixed(1)).toLocaleString()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript