JavaScript处理数字分位符号

特别声明:如果您喜欢小站的内容,可以点击申请会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)

昨天做一个页面有一个需求,需要把服务器取过来的数字(也有可能是数字字符串),将小数点前的数字每隔三位添加一个逗号(前面数是一个四位数的值)。比如取到的值是123456,要将其转换成123,456。搜索了一下,这叫数字分位符号。

为了方便阅读小数点前后的数字可以被分组,由于国际上语言里最常见的数字读法是千位分位,写法的分组也是在千位数上。 如果当地习俗是用句点作小数点,千位的分号一般是逗号或空格。如果习俗里小数点是逗号,千位分号一般是句点或空格。由于可能产生歧义,国际标准建议、国际度量衡局更是要求用空格而不要用逗号或点。

不同国家有不同的标准要求,我们看看我国的标准:

为便于阅读,四位以上的整数或小数,可采用以下两种方式分节:

  • 千分撇: 整数部分每三位一组,以,分节。小数部分不分节。四位以内的整数可以不分节。如:624,00092,300,00019,351,235.235767,1256
  • 千分空: 从小数点起,向左和向右每三位数字一组,组间空四分之一个汉字,即二分之一个阿拉伯数字的位置。四位以内的整数可以不加千分空。如:55 235367.34623 98 235358.238368

可见,中国正式场合的数字用法并非是以万位数为一组来分节的。诸如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]做替换,这里需要一个正则
剩余80%内容付费后可查看

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部