currency.js是一款 js处理货币格式格式插件。currency.js提供非常灵活的api来帮助您解决javascript中的浮点数问题,并提供格式化货币数值功能,使用起来非常方便。
currency.js使用Es6语法编写,只有支持Es6语法的浏览器才能正常使用该插件。
使用方法
在页面中引入的currency.js文件。
<script src="js/currency.js"></script>
基本使用
currency.js可以接收数值,字符串或货币对象作为参数值。
currency(123); // 123.00 currency(1.23); // 1.23 currency("1.23") // 1.23 currency("$12.30") // 12.30 var value = currency("123.45"); currency(value); // 123.45
currency.js提供一组数学运算方法来帮助您进行浮点数计算。
currency(123.50).add(0.23); // 123.73 currency(5.00).subtract(0.50); // 4.50 currency(45.25).multiply(3); // 135.75 currency(1.12).distribute(5); // [0.23, 0.23, 0.22, 0.22, 0.22]
currency.js内置了格式化功能,能正确的显示逗号和圆点分隔符。
currency("2,573,693.75").add("100,275.50").format(); // "2,673,969.25" currency("1,237.72").subtract(300).format(); // "937.72"
你也可以自定义自己的货币数值格式。
var euro = value => currency(value, { separator: ".", decimal: "," }); euro("2.573.693,75").add("100.275,50").format(); // "2.673.969,25" euro("1.237,72").subtract(300).format(); // "937,72"
配置参数
currency.js可用的配置参数有:
symbol
:货币的符号,默认值为$
。currency(1.23, { formatWithSymbol: true }).format(); // => "$1.23"
symbol
:是否在调用currency.format()
方法时使用逗号分隔符,默认为,
。currency(1234.56, { symbol: ',' }).format(); // => "1,234.56" currency(1234.56, { symbol: ' ' }).format(); // => "1 234.56"
decimal
:currency(1.23, { decimal: '.' }).format(); // => "1.23" currency(1.23, { decimal: ',' }).format(); // => "1,23"
precision
:保留小数点的位数。默认保留2位。currency(1.234, { precision: 2 }); // => "1.23" currency(1.234, { precision: 3 }); // => "1.234"
formatWithSymbol
:是否在调用currency.format()
方法时使用货币符号。默认值为false
。currency(1.23, { formatWithSymbol: true }).format(); // => "$1.23" currency(1.23, { formatWithSymbol: false }).format(); // => "1.23"
errorOnInvalid
:当传入null
或undefined
等不正确的值时,currency
抛出异常。默认值为false
。currency(undefined, { errorOnInvalid: true }); // throws an error
increment
:When implementing a currency that implements rounding, setting theincrement
value will allow you to set the closest increment to round the display value to.var currencyRounding = value => currency(value, { increment: .05 }); currencyRounding(1.09); // => { intValue: 109, value: 1.09 } currencyRounding(1.09).format(); // => "1.10" currencyRounding(1.06); // => { intValue: 106, value: 1.06 } currencyRounding(1.06).format(); // => "1.05"
useVedic
:使用印度编号系统来显示货币数值。默认值是false
。currency(1234567.89, { useVedic: true }).format(); // => "12,34,567.89"
方法
currency.js可用的方法有:
currency.add( value )
:加法运算。currency(123.45).add(.01); // => "123.46"
currency.subtract( value )
:减法运算。currency(123.45).subtract(.01); // => "123.44"
currency.multiply( number )
:乘法运算。currency(123.45).multiply(2); // => "246.90"
currency.divide( number )
:除法运算。currency(123.45).divide(2); // => "61.73"
currency.distribute( number )
:平均分配。currency(12.35).distribute(3); // => [4.12, 4.12, 4.11] currency(12.00).distribute(3); // => [4.00, 4.00, 4.00]
currency.format([ boolean ])
:返回格式化后的货币格式。currency(1000.00).format(); // => "1,000.00" currency("1,234,567/90").add("200,000").format(); // => "1,434,567.89"
上面是默认的格式,你可以通过下面的方法来自定义货币格式。
var euro = value => currency(value, { separator: ' ', decimal: ',' }); // ... euro(1000.00).format(); // => "1 000,00" euro(1234567.89).add("200 000").format(); // => "1 434 567,89"
结合
symbol
参数,可以显示出带符号的货币格式。var money = value => currency(value, { formatWithSymbol: true }); money(1000.00).format(); // => "$1,000.00" money(1000.00).format(false); // => "1,000.00"
currency.dollars
:返回货币的dollar值。currency(123.45).dollars(); // => 123 currency("0.99").dollars(); // => 0
currency.cents
:返回货币的cent值。currency(123.45).cents(); // => 45 currency("0.99").cents(); // => 99
- 国际化(i18n)和格式:currency.js默认使用的是美国货币,你可以使用下面的方法来将货币格式本地化。
const USD = value => currency(value); const RMB = value => currency(value, { precision: 0, symbol: '¥' }); const EURO = value => currency(value, { symbol: '€', decimal: ',', separator: '.' }); USD(1234.567).format(true); // => "$1,234.57" RMB(1234.567).format(true); // => "¥1,235" EURO(1234.567).format(true); // => "€1.234,57"
currency.js js处理货币格式格式插件的github地址为:https://github.com/scurker/currency.js