javascript - 货币的 JS Intl.NumberFormat 不能有 maximumFractionDigits 0

标签 javascript google-chrome

我正在使用 JavaScript Intl 对象,我想将数字(例如 150)格式化为看起来像“£150”。对于 Chrome,直到更新到版本 59,此代码才能完美运行:

var GBPFormatter = new Intl.NumberFormat('en-US', {
      style: 'currency',
      currency: 'GBP',
      maximumFractionDigits: 0
  });

但现在它说“maximumFractionDigits”不能为 0,在阅读 https://developer.mozilla.org/ 之后我发现对于 GBP maximumFractionDigits 不能小于 2。

一切都很好,但我仍然需要“£150”而不是“£150.00”。任何想法我仍然可以使用 Intl 对象并使其看起来像我需要的那样。

附言我知道我可以使我自己的功能具有相同的剂量,但考虑到我不仅有英镑而且有更多的货币,我更愿意坚持使用现成的解决方案。

最佳答案

您可以根据需要将 maximumFractionDigits 选项设置为 0,但该值需要高于 minimumFractionDigits。因为此货币的 minimumFractionDigits 的默认值高于 0,所以您需要手动设置这两个值以获得您想要的:

var GBPFormatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'GBP',
  minimumFractionDigits: 0,
  maximumFractionDigits: 0
});

console.log(GBPFormatter.format(150)); // Should output "£150"

关于javascript - 货币的 JS Intl.NumberFormat 不能有 maximumFractionDigits 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43940495/

相关文章:

internet-explorer - CSS 中的盒子阴影

自动完成/自动填充的 Javascript 代码会减慢调查速度

javascript - Django:检索 Ajax 调用中所选下拉选项的私钥

javascript - Bootstrap 在单击到侧面时调整容器大小

google-chrome - 如何从网页上的十六进制字符串获取颜色?例如,通过选择它

python - 访问被拒绝您无权使用 ChromeDriver 和 Chrome 通过 Selenium Python 访问此服务器上的 "site"

javascript - 在 chrome 中选择单击时更新选项

javascript - 使用JS显示依赖于元素类的图像

javascript - 如何在 HTML 和 CSS 中将鼠标悬停在另一个图像中的一个点上时显示 GIF 图像?

javascript - 如何在 Google Chrome 中为 SpeechSynthesisUtterance 设置默认语音?