Open In App
Related Articles

JavaScript Numbers

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Javascript Numbers are primitive data types. Unlike other programming languages, you don’t need int, float, etc to declare different numeric values. JavaScript numbers are always stored in double-precision 64-bit binary format IEEE 754. 

This format stores numbers in 64 bits, 

  • 0-51 bit stores value(fraction)
  • 52-62 bit stores exponent
  • 63-bit stores sign

Number Literals: The types of number literals You can use decimal, binary, octal, and hexadecimal.

Decimal Numbers: JavaScript Numbers does not have different types of numbers(ex: int, float, long, short) which other programming languages do. It has only one type of number and it can hold both with or without decimal values.

let a=33;
let b=3.3;

Octal Number: If the number starts with 0 and the following number is smaller than 8. It will be parsed as an Octal Number. 

let x = 0562   // x will be 370(parsed as an octal number).

Binary Numbers: They start with 0b or 0B followed by 0’s and 1’s. 

let x = 0b11;        // x will be 3
let x = 0B0111;    // x will be 7

Hexadecimal Numbers: They start with 0x or 0X followed by any digit belonging (0123456789ABCDEF) 

let x = 0xfff;   // x will be 4095

Number Coercion: The built-in operations of Javascript that expect numbers coerce their arguments to numbers first. Some popular coercion is given below:

  • undefined is returned as NaN
  • null is returned as0
  • true as 1 and false as 0
  • Strings are returned by parsing them as if they contain an object literal. If the string is not parsed it returns NaN.
  • BignInts and symbol throw typeError

Integer conversion: Some operations such as those which work with an array, string indexes, or date/time expect integers. After performing the coercion if the number is greater than 0 it is returned as the same and if the number NaN or -0, it is returned as 0. The result is always an integer.

Fixed-width number Conversion: In Javascript, there are some functions that deal with the binary encoding of integers such as bitwise operators and typedArray objects. The bitwise operators always convert the operands to 32-bit integers.

Example 1: In this example, we will print different numbers of literals.

Javascript

// Decimal Numbers
console.log(323)
 
// Binary Numbers
console.log(0b11);
console.log(0B0111);
 
// Hexadecimal Numbers
console.log(0xfff);
 
// Octal Numbers
console.log(0562);

                    

Output:

323
3
7
4095
370

Integers are accurate up to 15 digits

let a = 999999999999999;      // a will be 999999999999999
let b = 9999999999999999;    // b will be 10000000000000000

The floating point is not 100% accurate. The maximum number of decimals is up to 17.

let x = 0.22 + 0.12;   //x will be 0.33999999999999997

Example 2: In this example, we will check the output for the above inputs.  

Javascript

let x = 0.22 + 0.12;
console.log(x);
console.log(9999999999999999)

                    

Output: 

0.33999999999999997
10000000000000000

Example 3: In this example, we will use Number methods such as toString(), toExponential(), toPrecision(), isInteger(), and toLocaleString() method.

Javascript

let x = 21
console.log(x.toString());
console.log(x.toExponential());
console.log(x.toPrecision(4));
console.log(Number.isInteger(x));
console.log(x.toLocaleString("bn-BD"));

                    

Output:

21
2.1e+1
21.00
true
২১

Some facts about numbers in JavaScript:

  • If you add a string and number, there will be a string concatenation as an output.
  • Javascript numbers which are primarily primitive values can also be defined as objects using a new keyword.
  • Constants preceded by 0x are interpreted as hexadecimal in javascript.   
  • Javascript numbers are of base 10 by default, but we can use the toString() method to get output in the required base from base 2 to base 36.
  • Apart from regular numbers, Javascript has BigInt numbers which are integers of arbitrary length. Regular integer numbers can’t safely exceed (253-1) or be less than -(253-1) that’s when BigInt serves the purpose.

We have a complete list of Javascript Number Objects methods, to check those please go through this Javascript Number Complete Reference article.



Last Updated : 20 Jun, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads