Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@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.sqrt(); // with method toFixed '10'
Модуль
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 0 weekly downloads. As such, @waves/bignumber popularity was classified as not 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.