Javascript 如何使用Intl.NumberFormat格式化货币?
我正在尝试将货币格式化为以下格式Javascript 如何使用Intl.NumberFormat格式化货币?,javascript,Javascript,我正在尝试将货币格式化为以下格式 const formatter = new Intl.NumberFormat("en-GB", { style: "currency", currency: "GBP", minimumFractionDigits: 2 }); const moneyFormat = formatter.format(7360); 预计为73.60英镑,但返回的是7360.00英镑 知道我做错了什么吗?函数format将原始值格式化为您指定的小
const formatter = new Intl.NumberFormat("en-GB", {
style: "currency",
currency: "GBP",
minimumFractionDigits: 2
});
const moneyFormat = formatter.format(7360);
预计为73.60英镑,但返回的是7360.00英镑
知道我做错了什么吗?函数
format
将原始值格式化为您指定的小数位数。您给它的原始数字是7360
,因此它添加了两个小数位数,使其成为7360.00
。需要传递的数字实际上是73.60
如果使用货币值作为整数,只需除以100即可显示所需的值
const moneyFormat = formatter.format(7360 / 100);
此代码可能会帮助您获得无小数的格式
const formatter=new Intl.NumberFormat(“en GB”{
货币:“英镑”
});
const moneyFormat=formatter.format(7360);
console.log(“$”,moneyFormat)代码>如果金额单位为便士
且所需结果单位为英镑,则必须将金额除以100(考虑到100便士=1英镑)。minimumFractionDigits
调整当前值小数点后的尾随零,但不操纵实际值
你应该试试下面
const formatter=new Intl.NumberFormat(“en GB”{
风格:“货币”,
货币:“英镑”,
最小分数位数:2,
});
const moneyFormat=格式化程序.format(7360/100);
console.log(moneyFormat)
你为什么期望73.60英镑?该值为7360
,而不是73.60
@jornsharpe该数字是从mangoPay返回的,mangoPay没有添加任何逗号。所以实际值是73.60,但返回为7360,所以我想相应地显示“不添加任何逗号”是什么意思?这是一个数字。如果你收到的是便士,需要显示英镑,你需要将其分开。如果你不明白为什么这是一个很好的问题,请阅读有关浮动和货币的文章:。。。不幸的是,Intl.NumberFormat()
没有类似于minorUnits:true的选项。十进制值仍在显示。。。我能知道在这种情况下如何避免吗