Avatar ·

JavaScript中数字格式化为货币字符串的最佳方法

大家好!我是JavaScript新手,遇到了一个问题:需要在网站上以货币字符串形式显示商品价格,例如"1 234.56 ₽"或"$1,234.56"。我尝试过手动使用Math.round和字符串拼接,但代码变得非常糟糕,尤其是考虑到不同货币和locale时。 以下是我尝试过的示例: ```javascript function formatPrice(price) { const rubles = Math.floor(price); const kopecks = Math.round((price - rubles) * 100); return rubles + ' ₽ ' + (kopecks < 10 ? '0' : '') + kopecks; } ``` 但这只适用于卢布,而且对于大数字(例如1000000),结果是"1000000 ₽ 00",而我需要"1 000 000.00 ₽"。另外,如果货币是美元,则需要将美元符号放在数字前面,并使用点作为千位分隔符、逗号作为美分分隔符。 我知道JavaScript有一些内置方法,但我搞不清楚。我试过toFixed(2),但它不会在数位之间添加空格。请告诉我如何正确且优雅地格式化。