toLocaleString()的范围错误,最大数字为0

时间:2016-12-08 17:23:40

标签: javascript

以下适用于Chrome:

var formatted = (value * 1).toLocaleString('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 });

但IE / Edge和Firefox抛出错误:

  

RangeError:无效数字值:0

Mozilla docs for toLocaleString

  

maximumFractionDigits:要使用的最大小数位数。可能的值为0到20

1 个答案:

答案 0 :(得分:8)

仔细阅读NumberFormat的文档会显示,对于美元货币,minimumFractionDigits的默认值为2.将minimumFractionDigitsmaximumFractionDigits都设置为0固定问题。从中可以看出,IE和Edge maximumFractionDigits必须是> = minimumFractionDigits,在指定货币时(至少)

var formatted = (value * 1).toLocaleString('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0, minimumFractionDigits: 0 });