# Big.js tutorial

last modified October 18, 2023

In this article we show to work with arbitrary precision big decimal arithmetic in JavaScript with Big.js module.

## Big.js

Big.js is a small, fast JavaScript library for arbitrary-precision decimal arithmetic.

In this article we work with Big.js in a Node application.

## Setting up Big.js

First, we install Big.js.

$ node -v v18.2.0

We use Node version 18.2.0.

$ npm init -y

We initiate a new Node application.

$ npm i big.js

We install Big.js with `npm i big.js`

command.

## JavaScript Number precision error

In the first example, we show that JavaScript Numbers are not precise for doing arbitrary precision arithmetic.

var sum = 0; // two euros fifty-five cents var amount = 2.55; for (let i = 0; i < 100000; i++) { sum += amount; } console.log(sum);

In the example, we add two euros fifty-five cents one hundred thousand times.

$ nodejs numbers.js 254999.9999995398

We have an error in the calculation.

## Big.js example

In the next example we correct the error with Big.js.

import Big from 'big.js'; let val = new Big(0.0); let amount = new Big(2.55); let sum = val.plus(amount).times(100000); console.log(sum.toFixed(2));

With Big.js library, the calculation is precise.

import Big from 'big.js';

We import `Big`

from the `big.js`

module.

let val = new Big(0.0); let amount = new Big(2.55);

We create two big decimal values.

let sum = val.plus(amount).times(100000);

We add the value 100000 times. Note that the big decimal values are immutable, so we generate a new variable.

$ node main.js 255000.00

## Big.js pow

The `pow`

provides a high-precision power operation.

import Big from 'big.js'; let val = new Big(0.9); let res = val.pow(3); console.log(res); console.log(0.9 ** 3);

The example raises the 0.9 to the power of 3 using Big.js and vanilla JS.

$ node main.js 0.729 0.7290000000000001

## Source

In this article we have worked with arbitrary precision arithmetic in
JavaScript with the `Big.js`

library.