JavaScript中使用toLocaleString数字格式化处理详解

目录
  • toLocaleString 偷懒小帮手啊~
  • Number.prototype.toLocaleString()
    • 1. 数字分割成千分位
    • 2. 保留几位小数
    • 3. 使用的整数数字的最小数目minimumIntegerDigits
    • 4. 使用的有效数字的最小数目minimumSignificantDigits
    • 5. 使用的有效数字的最大数目maximumSignificantDigits
    • 6. 展示的样式style

toLocaleString 偷懒小帮手啊~

项目中给数字做格式化处理的问题太常见啦,特别是涉及到金融数字的部分,这次就是有个需求需要给各种不同格式,要是以前可能就傻傻的自己写函数处理,可是这次无意间看到还有这么好用的函数,那以前岂不是纯纯的大冤种了-_-

Number.prototype.toLocaleString()

参数: numObj.toLocaleString([locales [, options]])。

第一个参数是一个可选参数,缩写语言代码(BCP 47 language tag,例如: cmn-Hans-CN)的字符串或者这些字符串组成的数组,一些 Unicode 扩展键也是被允许的,详情见MDN,有特殊地区格式就得传当地的locales。一般传值undefinedzh或者en,就可以应对大多数情况了,默认不传是undefiend

1. 数字分割成千分位

它直接调用,默认就是分割千分位的

var a = 123456.6789
a.toLocaleString() // 123,456.679,默认保留3位小数

如果不想被分给成千分位,则需要用到一个属性useGrouping: false

var a = 123456.6789
a.toLocaleString(undefined, {useGrouping: false}) // 123456.6789

2. 保留几位小数

这里主要用到了两个属性: 保留最少小数minimumFractionDigits和保留最多小数maximumFractionDigits

var a = 123456.6789
a.toLocaleString(undefined, {minimumFractionDigits: 6}) //123,456.678900

这里把最少保留数设为6,那它就会保留6位小数

var a = 123456.6789
a.toLocaleString(undefined, {maximumFractionDigits: 2}) //123,456.68

如果想保留两位小数的话,把保留最多小数设为2就行。

3. 使用的整数数字的最小数目minimumIntegerDigits

范围是1-21,默认1

var a = 123456.6789
a.toLocaleString(undefined, {minimumIntegerDigits: 8}) //00,123,456.679

使用的整数数字的最小数目,不足会补零

4. 使用的有效数字的最小数目minimumSignificantDigits

范围是1-21,默认1

var a = 123456.6789
a.toLocaleString(undefined, {minimumIntegerDigits: 8}) //00,123,456.679

5. 使用的有效数字的最大数目maximumSignificantDigits

范围是1-21,默认21

var a = 123456.6789
a.toLocaleString(undefined, {maximumSignificantDigits: 6}) //123,457

4.5两个保留有效位的属性也很厉害,可以保留任意有效位,四舍五入,不足位的会补零。

6. 展示的样式style

属性style是不同样式展示选项:默认是decimal。 选项:

decimal: 纯数字

percent: 百分比

unit: 单位格式,配合unit,单位使用。单位取值

currency: 用于货币格式,注意这个属性不能单独使用,还得配套使用currency属性

var a = 123456.6789,
a.toLocaleString(undefined, {style: 'decimal'}) //123,456.679
a.toLocaleString(undefined, {style: 'percent'}) // 12,345,668%
a.toLocaleString(undefined, {style: 'currency', currency: 'EUR'}) // €123,456.68
a.toLocaleString(undefined, {style: 'currency', currency: 'CNY'}) // ¥123,456.68
a.toLocaleString(undefined, {style: 'unit', unit: 'acre'}) // 123,456.679英亩

其中currencycurrencyDisplay也可配套使用,前者制定对应的货币,比如 USD 、EUR 与 CNY (不区分大小写的),后者则是货币符号的展示样式,默认currencyDisplaysymbol:

var a = 123456.6789,
a.toLocaleString(undefined, {style: 'currency', currency: 'CNY', currencyDisplay: 'symbol'}) //  ¥123,456.68
a.toLocaleString(undefined, {style: 'currency', currency: 'CNY', currencyDisplay: 'code'}) // CNY 123,456.68
a.toLocaleString(undefined, {style: 'currency', currency: 'CNY', currencyDisplay: 'name'}) // 123,456.68人民币

上面都是一些toLocaleString对数字的常规格式,应对日常的格式处理应该够用的。

当然它还有Date.prototype.toLocaleStringArray.prototype.toLocaleString,感兴趣可以自行了解一下。

以上就是JavaScript中使用toLocaleString数字格式化处理详解的详细内容,更多关于toLocaleString数字格式化的资料请关注我们其它相关文章!

(0)

相关推荐

  • JavaScript中的toString()和toLocaleString()方法的区别

    偶然之间用到这两个方法 然后在数字转换成字符串的时候,并没有感觉这两个方法有什么区别,如下: var e=123 e.toString() "123" e.toLocaleString() "123" 是吧,并没有什么区别 再继续看数组转成字符串分别用这两个方法有什么区别呢,看看,代码如下 var aa=[1,2,3] aa.toLocaleString() "1,2,3" aa.toString() "1,2,3" 也并没有

  • JavaScript中时间格式化新思路toLocaleString()

    目录 1.时间格式化常规思路 2.时间格式化toLocaleString() 研究Object对象的时候,看到了 toLocaleString() 这个方法可以很简单的实现时间格式化. 1.时间格式化常规思路 正常思路是通过Date的实例依次获取年月日等,例如一个简单的格式化例子: Date.prototype.format = function(dateStr) { let date = new Date(); let year = date.getFullYear(); let month

  • JavaScript中toLocaleString()和toString()的区别实例分析

    本文实例讲述了JavaScript中toLocaleString()和toString()的区别.分享给大家供大家参考,具体如下: <javascript高级程序设计>解释: "toLocaleString()返回对象的字符串表示,该字符串与执行环境的地区对应:toString()返回对象的字符串表示:" 感觉还是不太好理解......来看几个实例: 字符串: var a = 6666; a.toLocaleString(); //"6,666" a.t

  • JavaScript中使用toLocaleString数字格式化处理详解

    目录 toLocaleString 偷懒小帮手啊~ Number.prototype.toLocaleString() 1. 数字分割成千分位 2. 保留几位小数 3. 使用的整数数字的最小数目minimumIntegerDigits 4. 使用的有效数字的最小数目minimumSignificantDigits 5. 使用的有效数字的最大数目maximumSignificantDigits 6. 展示的样式style toLocaleString 偷懒小帮手啊~ 项目中给数字做格式化处理的问题

  • JavaScript 中有关数组对象的方法(详解)

    JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象----函数(js中的一等对象).数组(键值的有序集合). 数组元素的添加 arrayObj.push([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . .

  • JavaScript中Number对象的toFixed() 方法详解

    定义和用法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 语法 NumberObject.toFixed(num) 参数 描述 num 必需.规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围.如果省略了该参数,将用 0 代替. 返回值 返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字.如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度.如果 num 大于 l

  • Javascript中的迭代、归并方法详解

    迭代方法 在Javascript中迭代方法个人觉得尤为重要,在很多时候都会有实际上的需求,javascript提供了5个迭代方法来供我们操作,它们分别为: every() 对数组中的每一个项运用给定的函数,如果每项都返回true,那么就会返回true filter() 对数组中的每一个项运用给定的函数,把返回true的项组成一个新数组并返回 forEach() 对数组中的每一项运用给定的函数,但是没有任何的返回值 map() 对数组中的每一个项运用给定的函数并返回每次函数调用的结果组成新的数组

  • JavaScript中SetInterval与setTimeout的用法详解

    setTimeout 描述 setTimeout(code,millisec) setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止 参数 描述 code 必需,要调用的函数后要执行的 JavaScript 代码串. millisec 必需,在执行代码前需等待的毫秒数. setTimeinterval setInterval(code,millisec[,"lang"]) 参数

  • JavaScript中闭包的写法和作用详解

    1.什么是闭包 闭包是有权访问另一个函数作用域的变量的函数. 简单的说,Javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内.而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量.参数和声明的其他内部函数.当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包. 2.变量的作用域 要理解闭包,首先要理解变量的作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变

  • JavaScript中关键字 in 的使用方法详解

    for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为"枚举". 对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以 最好数组使用正常的for循环,对象使用for-in循环 对于对象 ,迭代出来的是对象的属性: var obj = { "key1":"value1", "key2":"value2", &q

  • 在JavaScript中对HTML进行反转义详解

    在JavaScript中对字符串进行转义和反转义操作,常用的方法莫过于使用encodeURI (decodeURI).encodeURIComponent (decodeURIComponent)这几个方法,具体使用方法和区别. 但是如何在JavaScript中对HTML进行反转义操作呢?例如下面这段代码: var jsonData = { title: "<%= data.name? data.name : title %>", desc: "<%= da

  • javascript中href和replace的比较(详解)

    在使用javascript的时候,有时候对于经常使用的方法太熟悉而忽略了他们之间原理的细微差别. 举例如下: window.location.href,window.location.replace. 这两种方式都可以让页面跳转到一个新的页面,但是其中我就忽略了跳转之后的细节,比如返回的原来的页面. window.location.href中的href其实就是<a>标签中的href,使用这个进行页面跳转后,可以使用浏览器的后退按钮退回到原来的页面,也可以使用history.go(-1)函数跳转

  • JavaScript中object和Object的区别(详解)

    JavaScript中object和Object有什么区别,为什么用typeof检测对象,返回object,而用instanceof 必须要接Object呢 这个问题和我之前遇到的问题非常相似,我认为这里有两个问题需要解决,一个是运算符new的作用机制,一个是function关键字和Funtion内置对象之间的区别.看了一些前辈的博客和标准,这里帮提问者总结一下. 1.new new运算符的作用是创建一个对象实例.这个对象可以是用户自定义的,也可以是带构造函数的一些系统自带的对象.如果 new

随机推荐