JavaScript 千分位 货币格式化

Number.prototype.toLocaleString()

toLocaleString() 方法返回这个数字在特定语言环境下的表示字符串。

新的 locales 和 options 参数让应用程序可以指定要进行格式转换的语言,并且定制函数的行为。在旧的实现中,会忽略 locales 和 options 参数,使用的语言环境和返回的字符串的形式完全取决于实现方式。

语法格式:

numObj.toLocaleString(locales, options:{})

locales 可选。缩写语言代码,有很多,一般使用 'zh-CN' 关于参数 locales 的一般形式和解释请参见 Intl page

options 可选。

  • style:

    1. decimal 用于纯数字格式;
    2. currency 用于货币格式;
    3. percent 用于百分比格式;
    4. unit 用于单位格式
  • currency
    在货币格式化中使用的货币符号。可能的值是ISO的货币代码 (the ISO 4217 currency codes,) 例如"USD"表示美元,"EUR"表示欧元,,或者 "CNY"是人民币。没有默认值,如果 style 是 “currency”,必须提 currency 属性.

  • currencyDisplay
    如何在货币格式化中显示货币。可能的值有 "symbol"表示使用本地化的货币符号,例如 €,"code" 表示使用国际标准组织货币代码,"name" 表示使用本地化的货币名称,如 “dollar”; 默认值是 "symbol"。·

  • minimumFractionDigits
    使用的小数位数的最小数目。可能的值是从 0 到 20;默认为普通的数字和百分比格式为 0;默认为货币格式如果没有提供则值为 2

  • maximumFractionDigits
    使用的小数位数的最大数目。可能的值是从 0 到 20;纯数字格式的默认值是minimumfractiondigits 和 3 中大的那一个;货币格式默认值是minimumfractiondigits 和 ISO 4217 currency code list 中大的那一个(如果列表中没有提供则值为2);百分比格式默认值是 minimumfractiondigits 和 0 中大的那一个。

var a = '456132489313'
var b = '62315613.265'

var options1 = {
	style:'currency',
	currency: 'CNY',
	currencyDisplay: 'symbol'
}

var options2 = {
	style:'currency',
	currency: 'CNY',
	currencyDisplay: 'name'
}

var options3 = {
	style:'currency',
	currency: 'CNY',
	currencyDisplay: 'code'
}

var options4 = {
	style:'currency',
	currency: 'EUR',
	currencyDisplay: 'symbol'
}

var options5 = {
	style:'currency',
	currency: 'CNY',
	currencyDisplay: 'symbol',
	minimumFractionDigits: 4
}

console.log(parseFloat(a).toLocaleString('zh-CN', options1)) 	// ¥456,132,489,313.00
console.log(parseFloat(a).toLocaleString('zh-CN', options2)) 	// 456,132,489,313.00人民币
console.log(parseFloat(a).toLocaleString('zh-CN', options3)) 	// CNY 456,132,489,313.00
console.log(parseFloat(b).toLocaleString('zh-CN', options3)) 	// CNY 62,315,613.27
console.log(parseFloat(a).toLocaleString('de-DE', options4)) 	// 456.132.489.313,00 €
console.log(parseFloat(a).toLocaleString('zh-CN', options5)) 	// ¥456,132,489,313.0000
console.log(parseFloat(a).toLocaleString('zh-CN', options5)) 	// ¥62,315,613.2650

参考:
MDN Web Docs: Number.prototype.toLocaleString()
JS格式化金钱(千分位加逗号、保留两位小数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值