bigdecimal 下载及使用方法

 

npm使用 

npm install --save js-big-decimal

js使用

下载地址:https://download.csdn.net/download/selectDele/15119663

var bigDecimal = require('js-big-decimal');

bigDecimal(number)

创建一个类型为BigDecimal的新对象。支持类型number和的参数string。如果传递的字符串无法解析,则将引发数字错误。建议使用字符串,因为它可以避免JS本机float实现的精度问题和的最大限制integer

它支持幂运算,但仅具有整数幂。

var  n1  =  new  bigDecimal (12.6789 ); 
var  n2  =  new  bigDecimal (“ 12345.6789” ); 
var  n3  =  new  bigDecimal ('12 .456e3' );  // 12456

getValue()

返回一个字符串格式的值

console.log(n2.getValue());

//12345.6789

getPrettyValue(number, digits, separator)

默认情况下,这将以标准数字格式返回数字,每三位数后加一个逗号。这两个参数digits-用于分组的(整数部分的)位数,和separator-标记分隔符的字符。例如,可以格式化16位数字作为信用卡

var  value  =  bigDecimal 。getPrettyValue (“ 12345.6789” );  // value =“ 12,345.6789”

或者,使用instance属性。返回结果为string

ar n3 = n2.getPrettyValue(); // n4 = "12,345.6789"

var num = new bigDecimal(1234567890123456)
var card = num.getPrettyValue(4, '-'); // cardNumber = "1234-5678-9012-3456"

round(number, precision, roundingMode)

将舍入后的值返回到指定的精度(十进制后的位数)。HALF_EVEN如果未传递任何参数,则默认精度设置为0,舍入模式设置为。

var value = bigDecimal.round("123.678", 2); // value = "123.68"

或者,使用instance属性。返回结果为bigDecimal

var n3 = n1.round(2); // n3 = new bigDecimal("12.68")
var n4 = n2.round(); // n4 = new bigDecimal("12346")

传递负数以四舍五入为整数将返回最接近的10的幂的倍数。如果参数的大小大于或等于要舍入的数字整数部分中的位数,zero则返回。

var val1 = bigDecimal.round("123.78", -2); // val1 = "100"
var val2 = bigDecimal.round("587", -1); // val2 = "590"
var val3 = bigDecimal.round("123.78", -4); // val3 = "0"

舍入还支持以下舍入模式(与Java 8相同):

  • CEILING -舍入模式向正无穷大舍入。
  • DOWN -舍入模式向零舍入。
  • FLOOR -舍入模式向负无穷大舍入。
  • HALF_DOWN -舍入模式向“最近的邻居”舍入,除非两个邻居都等距,在这种情况下舍入。
  • HALF_EVEN -舍入模式向“最近的邻居”舍入,除非两个邻居都等距,在这种情况下,向偶数邻居舍入。
  • HALF_UP -舍入模式向“最近的邻居”舍入,除非两个邻居都等距,在这种情况下舍入。
  • UNNECESSARY (!未实现!)-舍入模式可以断言所请求的操作具有准确的结果,因此不需要舍入。
  • UP -舍入模式从零舍入。

有关模式的详细说明,请参见舍入模式。

 

var num = new bigDecimal("123.657");
var numRound1 = num.round(1, bigDecimal.RoundingModes.DOWN); // "123.6"
var numRound2 = num.round(2, bigDecimal.RoundingModes.CEILING); // "123.66"

floor(number)

返回最接近但不大于输入数字的整数。

var n1 = bigDecimal.floor(12.8) // "12"
var n2 = bigDecimal.floor(-12.3) // "-13"

实例函数以新的形式返回结果 bigDecimal

var n1 = new bigDecimal(12.8).floor() // bigDecimal(12)
var n2 = bigDecimal(-12.3).floor() // bigDecimal(-13)

ceil(number)

返回最接近但不小于输入数字的整数。

var n1 = bigDecimal.ceil(12.8) // "13"
var n2 = bigDecimal.ceil(-12.3) // "-12"

实例函数以新的形式返回结果 bigDecimal

var n1 = new bigDecimal(12.8).ceil() // bigDecimal(13)
var n2 = bigDecimal(-12.3).ceil() // bigDecimal(-12)

compareTo(number1, number2)

比较两个数字。1, 0 and -1如果number1 > number2, number1 == number2 and number1 < number2分别返回。

var value = bigDecimal.compareTo("23.678", "67.34"); // value = -1
var value = bigDecimal.compareTo("23.678", "23.6780"); // value = 0
var value = bigDecimal.compareTo("123.678", "67.34"); // value = 1

或者,使用instance属性。返回结果为Integer

var n1 = new bigDecimal('1234');
var n2 = new bigDecimal('8765');
var value = n1.compareTo(n2); // value = -1

negate(number)

返回给定数字的负数。

var value = bigDecimal.negate("123.678"); // value = "-123.678";

或者,使用instance属性。它将结果作为new返回bigDecimal

var n = new bigDecimal('-1234');
var value = n.negate(); // value = new bigDecimal('1234')

add(augend, addend)

加两个数字。传递负数以进行减法。确保参数为string

var sum = bigDecimal.add("23.678", "67.34"); // sum = "91.018"
var diff = bigDecimal.add("67.34", "-23.678"); // diff = "43.662"

或者,使用instance属性。它将结果作为new返回bigDecimal

var n1 = new bigDecimal('1234');
var n2 = new bigDecimal('8765');
var sum = n1.add(n2); // sum = new bigDecimal('9999')

subtract(minuend, subtrahend)

从另一个减去一个数字

var diff = bigDecimal.subtract("67.34", "23.678"); // diff = "43.662"

或者,使用instance属性。它将结果作为new返回bigDecimal

var n1 = new bigDecimal('12.67');
var n2 = new bigDecimal('130.7');
var diff = n1.subtract(n2); // diff = new bigDecimal('-118.03')

multiply(multiplicand, multiplier)

将两个数字相乘。确保参数为strings。

var product = bigDecimal.multiply("-0.13", "0.00130"); // product = "-0.000169"

或者,使用instance属性。它将结果作为new返回bigDecimal

var n1 = new bigDecimal('-0.13');
var n2 = new bigDecimal('0.00130');
var product = n1.multiply(n2); // product = new bigDecimal('-0.000169')

divide(dividend, divisor, precision)

除以两个数字。像string调用bigDecimal一样传递参数,或者如果调用object则传递bigDecimal的实例。precision是可选参数,默认值为8。

var quotient = bigDecimal.divide('45', '4', 2); // quotient = '11.25'

或者,使用instance属性。它将结果作为new返回bigDecimal

var n1 = new bigDecimal('45');
var n2 = new bigDecimal('4');
var quotient = n1.divide(n2); // quotient = new bigDecimal('11.25')

modulus(dividend, divisor)

获得两个数字的模数,即除数除以除数后的余数。请注意,除数和除数都必须是整数。

var remainder = bigDecimal.modulus('45', '4'); // remainder = '1'

或者,使用instance属性。它将结果作为new返回bigDecimal

var n1 = new bigDecimal('45');
var n2 = new bigDecimal('4');
var remainder = n1.modulus(n2); // remainder = new bigDecimal('1')

此外,结果取除数的符号,除数的符号被忽略。请注意,此行为与Java和JavaScript中的行为相同。

参考地址:https://www.npmjs.com/package/js-big-decimal

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值