bignumber.js-ext

1.0.2 • Public • Published

bignumber-ext

BigNumber.js的扩展,精简了一些写法

用法如下:

  1. 安装
npm install bignumber.js-ext

yarn add bignumber.js-ext
  1. 引入

Nodejs环境

const BN = require('bignumber.js-ext')

浏览器环境

import BN from 'bignumber.js-ext';
  1. 使用
  • 加法(add)
BN(4).add(5).toString(10)  // 9
  • 减法(sub)
BN(4).sub(5).toString(10)  // -1
  • 乘法(mul)
BN(4).mul(5).toString(10)  // 20
  • 除法(div)
BN(4).div(5).toString(10)  // 0.8
  • 大于(gt)
BN(4).gt(5)  // false
  • 大于或等于(gte)
BN(4).gte(5)  // false
BN(4).gte(4)  // true
  • 小于(lt)
BN(4).lt(5)  // true
BN(4).lt(4)  // false
  • 小于或等于(lte)
BN(4).lte(5)  // true
BN(4).lte(4)  // true
  • 取反(neg)
BN(4).sub(5).toString(10)  // -1
BN(4).sub(5).neg().toString(10)  // 1
  • 取绝对值(abs)
BN(4).sub(5).toString(10)  // -1
BN(4).sub(5).abs().toString(10)  // 1
  • 取整(int)
BN(12.5).div(5).toString(10)  // 2.5
BN(12.5).div(5).int().toString(10)  // 3

// 向下取整
BN(12.5).div(5).int(BN.ROUND_DOWN).toString(10)  // 2
// 向上取整
BN(12.5).div(5).int(BN.ROUND_UP).toString(10)    // 3
  • 是否为NaN(isNaN)
BN(NaN).isNaN()  // true
  • 是否为0(isZero)
BN(0).isZero()  // true
  • 指数运算(pow)
// 2 ** 3 = 8
BN(2).pow(3).toString(10)  // 8
  • 截取精度(toFixed) 注: 会四舍五入
BN(12.58).div(5).toString(10)  // 2.516
BN(12.58).div(5).toFixed(1).toString(10)  // 2.5
BN(12.58).div(5).toFixed(2).toString(10)  // 2.52
  • 格式化(fmt)
BN('123456789.123456789').fmt()  // 123,456,789.123456789
BN('123456789.123456789').fmt(1) // 123,456,789.1

舍入模式

//取值范围:
BN.ROUND_UP = 0;         //远离0方向舍入
BN.ROUND_DOWN = 1;       //向0方向舍入
BN.ROUND_CEIL = 2;       //向正无限大舍入
BN.ROUND_FLOOR = 3;      //向负无限大舍入
BN.ROUND_HALF_UP = 4;    //四舍五入:向最接近的数字方向舍入,如果与两个相邻数字的距离相等,则向上舍入。
BN.ROUND_HALF_DOWN = 5;  //向最接近的数字方向舍入,如果与两个相邻数字的距离相等,则向下舍入。
BN.ROUND_HALF_EVEN = 6;  //向最接近数字方向舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入
BN.ROUND_HALF_CEIL = 7;
BN.ROUND_HALF_FLOOR = 8;

更多用法参考: bignumber.js

推荐库

Readme

Keywords

none

Package Sidebar

Install

npm i bignumber.js-ext

Weekly Downloads

1

Version

1.0.2

License

ISC

Unpacked Size

7.62 kB

Total Files

5

Last publish

Collaborators

  • yuanjunliang