Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
@waves/bignumber
Advanced tools
A 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:
<script src='path/to/bignumber.js'></script>
$ 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 BigNumber here in local scope. No global BigNumber.
});
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.
let x = new BigNumber('1111222233334444555566');
x.toString(); // "1111222233334444555566"
x.toFixed(); // "1111222233334444555566"
Клонирует объект
const some = new BigNumber(1);
const clone = some.clone();
Выполняет сложение
const bigNum = new BigNumber('100');
const result = bigNum.add('50'); // with method toFixed '150'
Вычитание
const bigNum = new BigNumber('100');
const result = bigNum.sub('50'); // with method toFixed '50'
Умножение
const bigNum = new BigNumber('100');
const result = bigNum.mul(2); // with method toFixed '200'
Деление
const bigNum = new BigNumber('100');
const result = bigNum.div(2); // with method toFixed '50'
Возведение в степень
const bigNum = new BigNumber('100');
const result = bigNum.pow(2); // with method toFixed '10000'
Модуль
const bigNum = new BigNumber('-100');
const result = bigNum.abs(); // with method toFixed 100
Остаток от деления
const bigNum = new BigNumber('100');
const result = bigNum.mod(10); // with method toFixed '0'
Округляет. Принимает количество знаков после запятой после округлени и режим округления см тут: http://mikemcl.github.io/bignumber.js/#constructor-properties
const bigNum = new BigNumber('100');
const result = bigNum.roundTo(); //
Равенство
const bigNum = new BigNumber('100');
const result = bigNum.eq(100); // true
Меньше
const bigNum = new BigNumber('100');
const result = bigNum.lt(); //
Больше
const bigNum = new BigNumber('100');
const result = bigNum.gt(); //
Меньше или равно
const bigNum = new BigNumber('100');
const result = bigNum.lte(); //
Больше или равно
const bigNum = new BigNumber('100');
const result = bigNum.gte(); //
Проверяет на NaN
const bigNum = new BigNumber('100');
const result = bigNum.isNaN(); // false
Проверяет на Infinity (положительный и отрицательный)
const bigNum = new BigNumber('100');
const result = bigNum.isFinite(); //
Проверяет на равенство нулю
const bigNum = new BigNumber('100');
const result = bigNum.isZero(); // false
Больше нуля
const bigNum = new BigNumber('100');
const result = bigNum.isPositive(); // true
Меньше нуля
const bigNum = new BigNumber('100');
const result = bigNum.isNegative(); // false
Проверяет целое ли число
const bigNum = new BigNumber('100');
const result = bigNum.isInt(); //
Получаем количество занков после запятой у числа
const bigNum = new BigNumber('100');
const result = bigNum.getDecimalsCount(); // 0
Четное
const bigNum = new BigNumber('100');
const result = bigNum.isEven(); // true
Не чётное
const bigNum = new BigNumber('100');
const result = bigNum.isOdd(); // false
Переводим число в байты со знаком (8 байт). Работает только с целыми числами.
const bigNum = new BigNumber('100');
const result = bigNum.toBytes();
Выводим число в строковом эквиваленте c с учётом настроек форматирования. Опционально принимает количество знаков округления, режим округления (как в roundTo) и настройки формата вывода.
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
Выводим число в строковом эквиваленте. Опционально принимает количество знаков округления и режим округления (как в roundTo)
const bigNum = new BigNumber('100');
const result = bigNum.toFixed(); //
Приводит к числу
const bigNum = new BigNumber('100');
const result = bigNum.toNumber(); //
Выводит знаковое число из байт. Работает только с 8 байтами.
const some = BigNumber.fromBytes(Uint8Array.from([1,2,3,4,5,6,7,8]));
Принимает любое количество аргументов, выбирает наибольшее число из аргументов
BigNumber.max(1, '2', new BigNumber(4)); // with method toFixed '4'
Принимает любое количество аргументов, выбирает наименьшее число из аргументов
BigNumber.min(1, '2', new BigNumber(4)); // with method toFixed '1'
Принимает любое количество аргументов, складывает числа
BigNumber.min(1, '2', new BigNumber(4)); //with method toFixed '7'
FAQs
Waves Library for work with Bignumber in javascript
The npm package @waves/bignumber receives a total of 1,898 weekly downloads. As such, @waves/bignumber popularity was classified as popular.
We found that @waves/bignumber demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.