我正在开发一个用 TypeScript 编写的银行应用程序前端。
从后端,我收到:
"32012012012012312.09"
"USD"
)我想用千位分隔符、货币符号和 NBSP/NNBSP 处理来格式化金额,所有这些都与提供的语言环境有关。最简单的方法是什么?
部分问题是否有潜在的解决方案?例如。 1.格式化数字和2.用货币符号格式化。
我尝试了什么:
Intl.NumberFormat
- 我喜欢它,但它需要 number | bigint
(虽然它不会因字符串而崩溃),但它在大十进制数上不再精确 - 例如它格式化 32_012_012_012_012_312.09
如32,012,012,012,012,310.00
- 我相信这是关于数字的 JavaScript 限制,这就是为什么我正在寻找处理字符串的东西 accounting-js
- formatMoney
具有字符串和数字的函数 - 结果相同,但缺少在 最佳答案
不确定它是否适用于所有语言/语言环境:
const [main, decimal] = "32_012_012_012_012_312.09".split(".")
const mainNumber = BigInt(main.replaceAll('_', ''))
const decimalNumber = Number.parseFloat('0.' + decimal)
const start = mainNumber.toLocaleString('de-DE') // "32.012.012.012.012.312"
const end = decimalNumber.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }) // "0,09 €"
const result = start + end.substr(1) // "32.012.012.012.012.312,09 €"
关于javascript - 如何在 JavaScript 中使用货币和相对于语言环境来格式化一个大数字(由字符串表示)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68848954/