@waves/bignumber
A JavaScript library for arbitrary-precision decimal and non-decimal arithmetic.
Load
The library is the single JavaScript file bignumber.umd.js (or minified, bignumber.umd.min.js).
Browser:
<script src='path/to/bignumber.js'></script>
Node.js:
$ npm install @waves/bignumber
const { BigNumber } = require('@waves/bignumber');
ES6 module:
import { BigNumber } from "@waves/bignumber"
AMD loader libraries such as requireJS:
require(['@waves/bignumber'], function(BigNumber) {
});
Use
let x = new BigNumber(123.4567);
let y = BigNumber('123456.7e-3');
let z = new BigNumber(x);
x.eq(y) && y.eq(z) && x.eq(z);
To get the string value of a BigNumber use toString()
or toFixed()
. Using toFixed()
prevents exponential notation being returned, no matter how large or small the value.
let x = new BigNumber('1111222233334444555566');
x.toString();
x.toFixed();
Clone
Клонирует объект
const some = new BigNumber(1);
const clone = some.clone();
Add
Выполняет сложение
const bigNum = new BigNumber('100');
const result = bigNum.add('50');
Sub
Вычитание
const bigNum = new BigNumber('100');
const result = bigNum.sub('50');
Mul
Умножение
const bigNum = new BigNumber('100');
const result = bigNum.mul(2);
Div
Деление
const bigNum = new BigNumber('100');
const result = bigNum.div(2);
Pow
Возведение в степень
const bigNum = new BigNumber('100');
const result = bigNum.pow(2);
Sqrt
Квадратный корень
const bigNum = new BigNumber('100');
const result = bigNum.sqrt();
Abs
Модуль
const bigNum = new BigNumber('-100');
const result = bigNum.abs();
Mod
Остаток от деления
const bigNum = new BigNumber('100');
const result = bigNum.mod(10);
RoundTo
Округляет. Принимает количество знаков после запятой после округлени и режим округления
см тут: http://mikemcl.github.io/bignumber.js/#constructor-properties
const bigNum = new BigNumber('100');
const result = bigNum.roundTo();
Eq
Равенство
const bigNum = new BigNumber('100');
const result = bigNum.eq(100);
Lt
Меньше
const bigNum = new BigNumber('100');
const result = bigNum.lt();
Gt
Больше
const bigNum = new BigNumber('100');
const result = bigNum.gt();
Lte
Меньше или равно
const bigNum = new BigNumber('100');
const result = bigNum.lte();
Gte
Больше или равно
const bigNum = new BigNumber('100');
const result = bigNum.gte();
IsNaN
Проверяет на NaN
const bigNum = new BigNumber('100');
const result = bigNum.isNaN();
IsFinite
Проверяет на Infinity (положительный и отрицательный)
const bigNum = new BigNumber('100');
const result = bigNum.isFinite();
IsZero
Проверяет на равенство нулю
const bigNum = new BigNumber('100');
const result = bigNum.isZero();
IsPositive
Больше нуля
const bigNum = new BigNumber('100');
const result = bigNum.isPositive();
IsNegative
Меньше нуля
const bigNum = new BigNumber('100');
const result = bigNum.isNegative();
IsInt
Проверяет целое ли число
const bigNum = new BigNumber('100');
const result = bigNum.isInt();
GetDecimalsCount
Получаем количество занков после запятой у числа
const bigNum = new BigNumber('100');
const result = bigNum.getDecimalsCount();
IsEven
Четное
const bigNum = new BigNumber('100');
const result = bigNum.isEven();
IsOdd
Не чётное
const bigNum = new BigNumber('100');
const result = bigNum.isOdd();
ToBytes
Переводим число в байты со знаком (8 байт). Работает только с целыми числами.
const bigNum = new BigNumber('100');
const result = bigNum.toBytes();
ToFormat
Выводим число в строковом эквиваленте c с учётом настроек форматирования.
Опционально принимает количество знаков округления, режим округления (как в roundTo) и настройки формата вывода.
const bigNum = new BigNumber('1000000.12312');
bigNum.toFormat();
bigNum.toFormat(2);
bigNum.toFormat(2);
bigNum.toFormat(2, 0);
bigNum.toFormat(2, 0, { groupSeparator: ' ' });
ToFixed
Выводим число в строковом эквиваленте. Опционально принимает количество знаков округления и режим округления (как в roundTo)
const bigNum = new BigNumber('100');
const result = bigNum.toFixed();
ToNumber
Приводит к числу
const bigNum = new BigNumber('100');
const result = bigNum.toNumber();
Static Methods
fromBytes
Выводит знаковое число из байт. Работает только с 8 байтами.
const some = BigNumber.fromBytes(Uint8Array.from([1,2,3,4,5,6,7,8]));
max
Принимает любое количество аргументов, выбирает наибольшее число из аргументов
BigNumber.max(1, '2', new BigNumber(4));
min
Принимает любое количество аргументов, выбирает наименьшее число из аргументов
BigNumber.min(1, '2', new BigNumber(4));
sum
Принимает любое количество аргументов, складывает числа
BigNumber.min(1, '2', new BigNumber(4));