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),但它不会在数位之间添加空格。请告诉我如何正确且优雅地格式化。