📜  格式数字 - Javascript (1)

📅  最后修改于: 2023-12-03 14:55:41.284000             🧑  作者: Mango

格式数字 - Javascript

在Javascript中,格式化数字可以通过多种方式实现。下面介绍几种常用的方式。

toFixed()

toFixed() 方法可以将数字四舍五入为指定小数位数的字符串形式。它接受一个参数,即要保留的小数位数。如果该参数为0,则返回整数形式的数字字符串。

const num = 123.456;

console.log(num.toFixed(2)); // "123.46"
console.log(num.toFixed(0)); // "123"
toLocaleString()

toLocaleString() 方法可以将数字格式化为本地化的字符串形式,例如使用本地化的千位分隔符和小数点符号。它接受一个参数,即一个对象,该对象包含以下属性:

  • locales:一个字符串或字符串数组,表示要使用的语言或语言环境。默认值为用户本地环境语言和地区设置。
  • options:一个对象,表示要使用的格式选项。这些选项包括:
    • style:表示数字格式的样式,可以是 "decimal"(十进制)或 "percent"(百分数)。
    • minimumFractionDigits:表示要保留的最小小数位数。
    • maximumFractionDigits:表示要保留的最大小数位数。
const num = 123456.789;

console.log(num.toLocaleString()); // "123,456.789"
console.log(num.toLocaleString("de-DE")); // "123.456,789"
console.log(num.toLocaleString(undefined, { style: "percent" })); // "12,345,678.9%"
console.log(num.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })); // "123,456.79"
Intl.NumberFormat()

Intl.NumberFormat() 类是一种更强大的实现数字格式化的方式。它提供了与 toLocaleString() 方法类似的本地化数字格式化功能,但具有更大的灵活性和可定制性。它接受一个或两个参数:

  • locales:一个字符串或字符串数组,表示要使用的语言或语言环境。如果是 undefined,则使用的是默认值。
  • options:一个对象,表示要使用的格式选项。这些选项包括:
    • style:表示数字格式的样式,可以是 "decimal"(十进制)或 "percent"(百分数)。
    • currency:表示货币代码,例如 "USD" 或 "EUR"。
    • minimumFractionDigits:表示要保留的最小小数位数。
    • maximumFractionDigits:表示要保留的最大小数位数。
    • minimumIntegerDigits:表示要保留的最小整数位数。
    • useGrouping:一个布尔值,表示是否使用千位分隔符。
const num = 123456.789;

console.log(new Intl.NumberFormat().format(num)); // "123,456.789"
console.log(new Intl.NumberFormat("de-DE").format(num)); // "123.456,789"
console.log(new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }).format(num)); // "$123,456.79"
console.log(new Intl.NumberFormat(undefined, { style: "percent", minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(num)); // "12,345,678.90%"
参考资料