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的选项。十进制值仍在显示。。。我能知道在这种情况下如何避免吗