Waves Library for work with Bignumber in javascript
npm install @waves/bignumberA JavaScript library for arbitrary-precision decimal and non-decimal arithmetic.
The library is the single JavaScript file bignumber.umd.js (or minified, bignumber.umd.min.js).
Browser:
``html`
`bash`
$ npm install @waves/bignumber
`javascript`
const { BigNumber } = require('@waves/bignumber');
ES6 module:
`javascript`
import { BigNumber } from "@waves/bignumber"
AMD loader libraries such as requireJS:
`javascript`
require(['@waves/bignumber'], function(BigNumber) {
// Use BigNumber here in local scope. No global BigNumber.
});
`javascript`
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); // true
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.
`javascript`
let x = new BigNumber('1111222233334444555566');
x.toString(); // "1111222233334444555566"
x.toFixed(); // "1111222233334444555566"
##### Clone
Клонирует объект
`javascript`
const some = new BigNumber(1);
const clone = some.clone();
##### Add
Выполняет сложение
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.add('50'); // with method toFixed '150'
##### Sub
Вычитание
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.sub('50'); // with method toFixed '50'
##### Mul
Умножение
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.mul(2); // with method toFixed '200'
##### Div
Деление
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.div(2); // with method toFixed '50'
##### Pow
Возведение в степень
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.pow(2); // with method toFixed '10000'
##### Sqrt
Квадратный корень
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.sqrt(); // with method toFixed '10'
##### Abs
Модуль
`javascript`
const bigNum = new BigNumber('-100');
const result = bigNum.abs(); // with method toFixed 100
##### Mod
Остаток от деления
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.mod(10); // with method toFixed '0'
##### RoundTo
Округляет. Принимает количество знаков после запятой после округлени и режим округления
см тут: http://mikemcl.github.io/bignumber.js/#constructor-properties
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.roundTo(); //
##### Eq
Равенство
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.eq(100); // true
##### Lt
Меньше
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.lt(); //
##### Gt
Больше
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.gt(); //
##### Lte
Меньше или равно
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.lte(); //
##### Gte
Больше или равно
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.gte(); //
##### IsNaN
Проверяет на NaN
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isNaN(); // false
##### IsFinite
Проверяет на Infinity (положительный и отрицательный)
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isFinite(); //
##### IsZero
Проверяет на равенство нулю
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isZero(); // false
##### IsPositive
Больше нуля
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isPositive(); // true
##### IsNegative
Меньше нуля
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isNegative(); // false
##### IsInt
Проверяет целое ли число
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isInt(); //
##### GetDecimalsCount
Получаем количество занков после запятой у числа
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.getDecimalsCount(); // 0
##### IsEven
Четное
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isEven(); // true
##### IsOdd
Не чётное
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.isOdd(); // false
##### ToBytes
Переводим число в байты со знаком (8 байт). Работает только с целыми числами.
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.toBytes();
##### ToFormat
Выводим число в строковом эквиваленте c с учётом настроек форматирования.
Опционально принимает количество знаков округления, режим округления (как в roundTo) и настройки формата вывода.
`javascript`
const bigNum = new BigNumber('1000000.12312');
bigNum.toFormat(); // 1,000,000.12312
bigNum.toFormat(2); // 1,000,000.12
bigNum.toFormat(2); // 1,000,000.12
bigNum.toFormat(2, 0); // 1,000,000.13
bigNum.toFormat(2, 0, { groupSeparator: ' ' }); // 1 000 000.13
##### ToFixed
Выводим число в строковом эквиваленте. Опционально принимает количество знаков округления и режим округления (как в roundTo)
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.toFixed(); //
##### ToNumber
Приводит к числу
`javascript`
const bigNum = new BigNumber('100');
const result = bigNum.toNumber(); //
##### fromBytes
Выводит знаковое число из байт. Работает только с 8 байтами.
`javascript`
const some = BigNumber.fromBytes(Uint8Array.from([1,2,3,4,5,6,7,8]));
##### max
Принимает любое количество аргументов, выбирает наибольшее число из аргументов
`javascript`
BigNumber.max(1, '2', new BigNumber(4)); // with method toFixed '4'`
##### min
Принимает любое количество аргументов, выбирает наименьшее число из аргументовjavascript`
BigNumber.min(1, '2', new BigNumber(4)); // with method toFixed '1'`
##### sum
Принимает любое количество аргументов, складывает числаjavascript``
BigNumber.min(1, '2', new BigNumber(4)); //with method toFixed '7'