DEV Community

Kelvin Wangonya
Kelvin Wangonya

Posted on

Javascript Arithmetic Cheat Sheet

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), I do hope you find this useful. The very obvious operations like simple addition (+) and subtraction (-) have been omitted. So have more advanced operations.

meme

Working with constants

Logarithm to base e

Math.E; // 2.718281828459045
Enter fullscreen mode Exit fullscreen mode

Logarithm to base 10

Math.LN10; // 2.302585092994046
Enter fullscreen mode Exit fullscreen mode

Logarithm to base 2

Math.LN2; // 0.6931471805599453
Enter fullscreen mode Exit fullscreen mode

Base 10 logarithm of e

Math.LOG10E; // 0.4342944819032518
Enter fullscreen mode Exit fullscreen mode

Base 2 logarithm of e

Math.LOG2E; // 1.4426950408889634
Enter fullscreen mode Exit fullscreen mode

πŸ₯§

Math.PI; // 3.141592653589793
Enter fullscreen mode Exit fullscreen mode

Square root of 1/2

Math.SQRT1_2; // 0.7071067811865476
Enter fullscreen mode Exit fullscreen mode

Square root of 2

Math.SQRT2; // 1.4142135623730951
Enter fullscreen mode Exit fullscreen mode

Infinity

Infinity; // Infinity
Enter fullscreen mode Exit fullscreen mode

UPDATE: As clarified by @oscherler in the comments,

About the use of Infinity, I think it’s useful when you are comparing results. If you do something like if(1/x > 1/y) and one of x or y turns out to be 0, then the comparison still works.

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
Math.round(-4.5); // -4
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Modulus (%)

Returns the remainder after (integer) division.

42 % 10; // 2
-40 % 10; // -0 πŸ€”
Enter fullscreen mode Exit fullscreen mode

Trigonometry

Sine

Math.sin(60); // -0.3048106211022167
Enter fullscreen mode Exit fullscreen mode

Cosine

Math.cos(60); // -0.9524129804151563
Enter fullscreen mode Exit fullscreen mode

Tangent

Math.tan(60); // 0.320040389379563
Enter fullscreen mode Exit fullscreen mode

Incrementing (++)

++ increments its operand by 1.

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

Decrementing (--)

-- decrements its operand by 1.

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

Exponentiation (**)

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

Getting maximum and minimum

Math.max(4.2, 4.7); // 4.7
Math.min(4.2, 4.7); // 4.2
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Getting roots √

Square Root

Math.sqrt(16); // 4
Enter fullscreen mode Exit fullscreen mode

Cube Root

Math.cbrt(27); // 3
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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

Top comments (6)

Collapse
 
oscherler profile image
Olivier β€œΓ–lbaum” Scherler

Nice write up. You could add an example with a negative number for Math.round().

About the use of Infinity, I think it’s useful when you are comparing results. If you do something like if(1/x > 1/y) and one of x or y turns out to be 0, then the comparison still works.

Collapse
 
wangonya profile image
Kelvin Wangonya

Thanks! I've added the example and your note on the use of infinity.

Collapse
 
modjular profile image
Tony Reksoatmodjo

On your second decrementing example, did you mean to have only one - sign?

Collapse
 
wangonya profile image
Kelvin Wangonya

Oops. My mistake. Fixed. Thanks!

Collapse
 
madhavgupta profile image
Madhav Gupta

Nice post,how do you add the black background with your coding examples?

Collapse
 
wangonya profile image
Kelvin Wangonya

Hi! I just set what I want to appear as code in a "code block" by surrounding it with three backticks "`" at the start and at the end. Check this out for examples.