特别声明:如果您喜欢小站的内容,可以点击申请会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)
昨天做一个页面有一个需求,需要把服务器取过来的数字(也有可能是数字字符串),将小数点前的数字每隔三位添加一个逗号(前面数是一个四位数的值)。比如取到的值是123456
,要将其转换成123,456
。搜索了一下,这叫数字分位符号。
为了方便阅读小数点前后的数字可以被分组,由于国际上语言里最常见的数字读法是千位分位,写法的分组也是在千位数上。 如果当地习俗是用句点作小数点,千位的分号一般是逗号或空格。如果习俗里小数点是逗号,千位分号一般是句点或空格。由于可能产生歧义,国际标准建议、国际度量衡局更是要求用空格而不要用逗号或点。
不同国家有不同的标准要求,我们看看我国的标准:
为便于阅读,四位以上的整数或小数,可采用以下两种方式分节:
- 千分撇: 整数部分每三位一组,以
,
分节。小数部分不分节。四位以内的整数可以不分节。如:624,000
、92,300,000
、19,351,235.235767
,1256
- 千分空: 从小数点起,向左和向右每三位数字一组,组间空四分之一个汉字,即二分之一个阿拉伯数字的位置。四位以内的整数可以不加千分空。如:
55 235
、367.346
、23 98 235
、358.238
、368
可见,中国正式场合的数字用法并非是以万位数为一组来分节的。诸如123,4567.89
的表示法是错误的。
JavaScript如何处理数字分位符
在这样的一个实际需求当中,取到的值不外呼是两种,其一它就是一个数字类型(整型123456
或者浮点型12345.09
),其二是一个数字字符串,比如"123456"
。那回到主题上,现在需要将这样的数字或字符串做处理。
- 需要创建一个函数,比如
addCommas()
,并且给这个函数传递一个参数val
。需要注意的是,这个val
值有可能是数字类型,也有可能是字符类型。 - 不管获取的
val
是什么类型,首先通过toString()
方法,将其转换成字符串 - 由于取到的
val
值有可能是一个浮点数,而我们是需要给小数点前面的整数部分添加分位符号,
;在JavaScript中可以通过split(".")
将这个val
转换成一个数组aIntNmu
。如果val
值是一个整数,那么得到的数组只有一个值,如果val
是一个浮点数,那么将会以小数点为分隔点,数整会有两个元素值。我们要处理的将是aIntNum[0]
。 - 通过正则
replace()
主法给aIntNum[0]
做替换,这里需要一个正则
如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!