00-1010在前端开发中经常满足这样的需求,前端开发使用Javascript格式化数字进行输出。最常见的是金额,比如人民币的最小单位是分钟,一般需要精确到小数点后两位,整数位需要每三位用逗号隔开。
今天我们来看看如何使用原生的Javascript和开源类库来实现这样的功能。
有兴趣的可以自己去github看看源代码。github的地址是:
https://github.com/Zhou Xiong king/article-pages/blob/master/articles/format number/format number . js
java描述语言
前言
首先,我们来看看最简单的实现方法,这需要实现这个目标。输入一串数字或字符串,最后返回格式化后的字符串,每三位数用逗号隔开,小数点后保留两位数四舍五入。
我们来分析一下方法的实现过程。
替换原始传入数据中可能出现的“$”和“,”,然后确定它是否为数字。
确定传入的数字是正数还是负数。
判断小数位数的舍入。
每三位数加一个逗号。
重新拼接字符串,符号整数小数位小数位
根据上述分析过程,得到的代码如下。
方法1
原生JS实现方法1
第二种实现方法可以选择保留小数位数,如下。将传入的数字或字符串转换为浮点数据并四舍五入。
用小数点除并反转整数位。
对于整数位,每三位加一个逗号。
再次反转序列以获得正确的整数位并拼接小数位。
通过以上分析,代码如下。
方法2
原生JS实现方法2
方法3是最全面的实现。您可以选择向上、向下或四舍五入来保留小数位数。您可以选择十进制符号和千分之一符号。为了使方法的代码看起来更清晰,该方法被分成两个函数,每个函数实现自己的功能。
第一个函数作为入口函数,主要包括小数位数的处理、千符号位的处理、最终返回结果的处理。
主要功能
第二个函数的主要功能是根据传入的参数对数字进行舍入或舍入。
第二个功能
对于上述方法,我们可以通过代码测试。
试验结果
00-1010还推荐了两个非常有用的格式化数字的开源库,Numeral.js和accounting.js,这两个库都可以格式化货币、百分比、时间、几个小数位、千位等等。
digital . js的github地址为:
https://github.com/adamwdraper/Numeral-js
目前Github上有5K以上的明星,并且有增加的趋势。
accounting.js的github地址是:
https://github.com/openexchangerates/accounting.js
目前,github上有100多位3K明星,可以说是非常受欢迎。
下面简单介绍一下Numeral.js的用法
使用
用在浏览器中,可以通过下面的代码来实现。
使用
格式化
将数字传递给数字,然后用format方法格式化数字。
格式化数字
格式化数字的规则如下。
数字格式规则
其他格式规则类似于货币、字节、百分比、时间、科学计数等。可以去官网看看。
00-1010今天,本文主要讲解如何将数字格式化为指定格式,包括原生JS实现和后面推荐的几个开源类库,希望对大家有所帮助。