Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@waves/bignumber

Package Overview
Dependencies
Maintainers
14
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@waves/bignumber

Waves Library for work with Bignumber in javascript

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.2K
decreased by-37.03%
Maintainers
14
Weekly downloads
 
Created
Source

@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 BigNumber here in local scope. No global 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);      // 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"
Clone

Клонирует объект

const some = new BigNumber(1);
const clone = some.clone();
Add

Выполняет сложение

const bigNum = new BigNumber('100');
const result = bigNum.add('50'); // with method toFixed '150'
Sub

Вычитание

const bigNum = new BigNumber('100');
const result = bigNum.sub('50'); // with method toFixed '50'
Mul

Умножение

const bigNum = new BigNumber('100');
const result = bigNum.mul(2); // with method toFixed '200'
Div

Деление

const bigNum = new BigNumber('100');
const result = bigNum.div(2); //  with method toFixed '50'
Pow

Возведение в степень

const bigNum = new BigNumber('100');
const result = bigNum.pow(2); // with method toFixed '10000'
Abs

Модуль

const bigNum = new BigNumber('-100');
const result = bigNum.abs(); // with method toFixed 100
Mod

Остаток от деления

const bigNum = new BigNumber('100');
const result = bigNum.mod(10); // with method toFixed '0' 
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); // true
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(); // false
IsFinite

Проверяет на Infinity (положительный и отрицательный)

const bigNum = new BigNumber('100');
const result = bigNum.isFinite(); //
IsZero

Проверяет на равенство нулю

const bigNum = new BigNumber('100');
const result = bigNum.isZero(); // false
IsPositive

Больше нуля

const bigNum = new BigNumber('100');
const result = bigNum.isPositive(); // true
IsNegative

Меньше нуля

const bigNum = new BigNumber('100');
const result = bigNum.isNegative(); // false
IsInt

Проверяет целое ли число

const bigNum = new BigNumber('100');
const result = bigNum.isInt(); //
GetDecimalsCount

Получаем количество занков после запятой у числа

const bigNum = new BigNumber('100');
const result = bigNum.getDecimalsCount(); // 0
IsEven

Четное

const bigNum = new BigNumber('100');
const result = bigNum.isEven(); // true
IsOdd

Не чётное

const bigNum = new BigNumber('100');
const result = bigNum.isOdd(); // false
ToBytes

Переводим число в байты со знаком (8 байт). Работает только с целыми числами.

const bigNum = new BigNumber('100');
const result = bigNum.toBytes();
ToFormat

Выводим число в строковом эквиваленте 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 
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)); // with method toFixed '4'
min

Принимает любое количество аргументов, выбирает наименьшее число из аргументов

BigNumber.min(1, '2', new BigNumber(4)); // with method toFixed '1'
sum

Принимает любое количество аргументов, складывает числа

BigNumber.min(1, '2', new BigNumber(4)); //with method toFixed '7'

Keywords

FAQs

Package last updated on 07 Apr 2020

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc