使用 Intl.NumberFormat,是否可以有 3 个非零的 minIntegerDigits?
使用科学记数法时,写1000g等于1kg。
当使用具有紧凑符号和货币样式的 Intl.NumberFormat 时,它会自动从 £999 切换到 £1k。
当同时使用属性 minIntegerDigits=3 时,我预计它会等到三个整数数字进行切换,因此它将从 99,999 英镑到 10 万英镑。 相反,它添加了前导零,从 999 英镑变为 001,000 英镑。
是否可以实现以下格式:
£99,999.99 then £100.00k
£9,999.99k then £10.00M
£9,999.99M then £10.00B
? 或者至少是类似的东西。
我的想法是将数字除以我需要的整数大小,然后结合 formatToParts 的输出,从一个中获取“文字”部分,从另一个中获取“整数”和“分数”部分。但就是感觉太乱了。 (伪代码,类似的东西)
numericalParts = formatToParts(value/1000)
semanticalParts = formatToParts(1000)
return numericalParts.integer + numericalParts.fraction + semanticalParts.literal + semanticalParts.currency
When using scientific notation, writing 1000g is the same as 1kg.
When using Intl.NumberFormat with the compact notation and currency style, it switches automatically from £999 to £1k.
When using also the property minIntegerDigits=3, I expected it to wait until having three integer digits to switch, so it would be from £99,999 to £100k.
Instead it adds leading zeros, switching from £999 to £001k.
Is it possible to achieve the following formats:
£99,999.99 then £100.00k
£9,999.99k then £10.00M
£9,999.99M then £10.00B
?
Or at least something similar.
My thought was to divide the number to get it in the integer size I need, then combine the output of formatToParts taking the "literal" from one and the "integer" and "fraction" parts from another. But it just feels too messy.
(pseudo-code, something like)
numericalParts = formatToParts(value/1000)
semanticalParts = formatToParts(1000)
return numericalParts.integer + numericalParts.fraction + semanticalParts.literal + semanticalParts.currency
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论