【发布时间】:2021-04-19 01:29:31
【问题描述】:
我需要一个带小数的千位分隔符,每 3 个数字用一个点 (.) 分隔,如果金额有小数,请不要删除逗号 (,)
我有这个方法,一点都不好用。
export function formatAmount(object)
{
let format = new Intl.NumberFormat('es-VE', { maximumFractionDigits: 10 });
return format.format(object);
}
如果我传递一个值,则使用此函数
3253,55 -> 3253,55
10000 -> 10.000
25000,55 -> 25.000,55
15000,5421 -> 15.000,5421
如果千位数至少有 5 个数字,基本上它会很好地工作,而 4 它不会与点分开。 我需要结果如下
3253,55 -> 3.253,55
1000 -> 1.000
50000,20 -> 50.000,20
15000,5421 -> 15.000,5421
不知道如何在不影响小数的情况下添加4位分隔符。
我在其他问题中找到了这个可能的解决方案
String(num).replace(/(?<!\..*)(\d)(?=(?:\d{3})+(?:\.|$))/g, '$1.')
但这对我不起作用,因为它将小数点的逗号 (,) 转换为点 (.)
3253,50 -> 3.253.50
如何得到我需要的结果,用点分隔千位而不受到小数点的影响?
【问题讨论】:
-
使用语言代码“de”代替:
(1000).toLocaleString('de', { minimumFractionDigits: 3, maximumFractionDigits: 3})给出“1,000.000”。
标签: javascript angular