javascript - toLocaleString() 的范围错误,最大位数为 0

标签 javascript

以下在 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。将 minimumFractionDigitsmaximumFractionDigits 设置为 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/

相关文章:

javascript - ajax回调函数可以看到父函数的变量吗?

javascript - 轮播菜单平滑和无限

javascript - 如何在 Angular4 的组件上显示不同的 JSON 数据?

javascript - 通过在移动设备上最大化 plyr.io 来强制横向模式?

javascript - 颜色逐渐变化

javascript - Vue.js 分隔符在引号中不起作用

javascript - react : How to setState in child component from parent component?

javascript - 页面加载时弹出模态框

javascript - nwdirectory 作为模型传递给 Angular

javascript - 如何使用 React+Redux 重试 promise 的 API 调用?