以下在 Chrome 中有效:
var formatted = (value * 1).toLocaleString('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 });
但是 IE/Edge 和 Firefox 抛出错误:
RangeError: invalid digits value: 0
Mozilla docs for toLocaleString :
maximumFractionDigits: The maximum number of fraction digits to use. Possible values are from 0 to 20
最佳答案
仔细阅读 NumberFormat 的文档表明,对于美元货币,minimumFractionDigits
的默认值为 2。将 minimumFractionDigits
和 maximumFractionDigits
设置为 0 可解决此问题。由此看来,在 IE 和 Edge 中,maximumFractionDigits
必须 >= minimumFractionDigits
,当指定货币时(至少)
var formatted = (value * 1).toLocaleString('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0, minimumFractionDigits: 0 });
关于javascript - toLocaleString() 的范围错误,最大位数为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41045270/