Home Blog Now

# Javascript Arithmetic Cheat Sheet

2019-03-03 javascript

Given that one of the main reason computers were invented was to solve mathematical problems quickly, it is no wonder that all the modern programming languages are so rich in arithmetic-oriented methods. The earliest computers were basically just calculators. (Yes, I'm looking at you Abacus). If you dabble in Javascript (and a little math every now and then), you might find this useful. The very obvious operations like simple addition (+) and subtraction (-) have been omitted. So have more advanced operations.

## Working with constants

Logarithm to base e

``````Math.E; // 2.718281828459045
``````

Logarithm to base 10

``````Math.LN10; // 2.302585092994046
``````

Logarithm to base 2

``````Math.LN2; // 0.6931471805599453
``````

Base 10 logarithm of e

``````Math.LOG10E; // 0.4342944819032518
``````

Base 2 logarithm of e

``````Math.LOG2E; // 1.4426950408889634
``````

🥧

``````Math.PI; // 3.141592653589793
``````

Square root of 1/2

``````Math.SQRT1_2; // 0.7071067811865476
``````

Square root of 2

``````Math.SQRT2; // 1.4142135623730951
``````

Infinity

``````Infinity; // Infinity
``````

## Rounding

`Math.round` returns the value of a number rounded to the nearest integer.

``````Math.round(4.2); // 4
Math.round(4.7); // 5
Math.round(4.5); // 5. Half-way values are always rounded up
``````

Speaking of rounding up, `Math.ceil()`:

``````Math.ceil(4.2); // 5
Math.ceil(4.7); // 5
Math.ceil(-4.7); // -4. Ceiling a negative number will round towards zero
``````

`Math.floor()` rounds down:

``````Math.floor(4.2); // 4
Math.floor(4.7); // 4
Math.floor(-4.7); // -5. Flooring a negative number will round away from zero
``````

## Modulus (%)

Returns the remainder after (integer) division.

``````42 % 10; // 2
-40 % 10; // -0 🤔
``````

## Trigonometry

Sine

``````Math.sin(60); // -0.3048106211022167
``````

Cosine

``````Math.cos(60); // -0.9524129804151563
``````

Tangent

``````Math.tan(60); // 0.320040389379563
``````

## Incrementing (++)

`++` increments its operand by 1.

``````// postfix: returns the value before incrementing
let a = 4, // 4
b = a++, // 4
c = a; //5
``````
``````// prefix: returns the value after incrementing
let a = 4, // 4
b = ++a, // 5
c = a; //5
``````

## Decrementing (–)

`--` decrements its operand by 1.

``````// postfix: returns the value before decrementing
let a = 4, // 4
b = a--, // 4
c = a; //3
``````
``````// prefix: returns the value after decrementing
let a = 4, // 4
b = -a, // 3
c = a; //3
``````

## Exponentiation (**)

``````// Math.pow() or ** can be used
let a = 4,
b = 2,
c = Math.pow(a, b), // 16
d = a ** b; // 16
``````

## Getting maximum and minimum

``````Math.max(4.2, 4.7); // 4.7
Math.min(4.2, 4.7); // 4.2
``````

Getting maximum and minimum from an array:

``````const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9],
max = Math.max(...arr), // 9
min = Math.min(...arr); // 1
``````

## Getting roots √

Square Root

``````Math.sqrt(16); // 4
``````

Cube Root

``````Math.cbrt(27); // 3
``````

To find the nth-root, use the Math.pow() function and pass in a fractional exponent.

``````// This finds the 6th root of 64
Math.pow(64, 1 / 6); // 4
``````

Much more complex calculations can be done by combining one or more of these operations.