在JavaScript中以Intl.NumberFormat格式化百分比

时间:2017-07-07 19:17:26

标签: javascript

var discount = 25.1;

var option = {
   style: 'percent',
   maximumFractionDigits: 2
};
var formatter = new Intl.NumberFormat(locale, option);
var discountFormat = formatter.format(discount );
// discountFormat return -> 2.510%

虽然我希望你这样回来:25.10%

2 个答案:

答案 0 :(得分:9)

因为25.12510%。百分比是100的分数。如果您有100%,则100/100等于1. 25.1%25/1000.251而非25.1



var discount = 0.251;

var option = {
   style: 'percent',
   minimumFractionDigits: 2,
   maximumFractionDigits: 2
};
var formatter = new Intl.NumberFormat("en-US",option);
var discountFormat = formatter.format(discount );
console.log(discountFormat);




此外,如果您想保留尾随零,则需要设置minimumFractionDigits,因为百分比的默认值为0.

如果您的值是要显示的实际百分比,您只需将%符号放在末尾,例如value = 25.1+"0%";

答案 1 :(得分:0)

或者您可以使用箭头功能

const percentageFormatter = intl = value => intl.formateNumber(value/100, {
style: "percent",
maximumFractionDigits:2
}

如果要用于带百分比后缀“%”的字段。 否则

const Num = 3223;
const CurrencyFormatter = intl => intl.formateNumber(intl.locale, {
style: "percent",
maximumFractionDigits:2
}

console.log(CurrencyFormatter (Num));