【发布时间】:2021-01-27 12:25:40
【问题描述】:
我正在使用Intl.NumberFormat 来格式化数字:
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 1,
maximumFractionDigits: 4,
minimumSignificantDigits: 1,
maximumSignificantDigits: 4
})
formatter.format(0.99999) // results: '1'. desired result: '0.9999'
formatter.format(0.006393555) // results: '0.006394'. desired result: '0.006393'
formatter.format(0.9972620384752073) // results: '0.9973'. desired result: '0.9972'
formatter.format(12345.67) // results: '12,350'. desired result: '12,345.67'
formatter.format(200001) // results: '200,000'. desired result: '200,001'
如您所见,数字会自动四舍五入,这在我的情况下是不受欢迎的行为。
有没有办法告诉格式化程序不要舍入? 我没有found any option 或组合选项来实现这一点。
【问题讨论】:
-
将
maximumSignificantDigits增加到比小数位数多1 的数字? -
12345.67这样的数字的期望结果是什么? -
扩展 KIKO 的问题 - 您的用例是否仅使用小数(提供的唯一示例)?如果您将格式化大于 1 的值,请使用一些格式化案例更新您的问题。
-
在所有情况下,小数应保留其小数位数,最多为 4 位有效数字。所以
12345.67应该是12,345.67。 -
@baba-dev 根据您的最新更改更新了我的答案。
标签: javascript number-formatting