Numbers in JavaScript

Amit Kumar  Print   3 min read  
06 Aug 2018
 
Intermediate
990

Unlike object-oriented programming languages (C++, C#, Java), JavaScript doesn't have different types of numbers, like integer, floating-point, long, double etc. JavaScript has only one type of number that is floating-point number. You can write JavaScript numbers with or without decimal.

<script>
var x = 5; // number without decimal
var y = 5.42; // number with decimal
</script>

A JavaScript number is a 64bit (8 bytes) floating-point number which has range of 5e-324 (negative) to 1.7976931348623157e+308 (positive).

JavaScript Numbers Accuracy

JavaScript numbers without decimal are considered accurate up to 15 digits and JavaScript Numbers with decimal are considered accurate up to 16 digits.

<script>
//Non-decimal number accuracy test
var x = 999999999999999; //15 digits
var y = 9999999999999999; //16 digits 
var z = 8999999999999999; //16 digit

console.log(x); //999999999999999
console.log(y); //10000000000000000
console.log(z); //8999999999999999

//Decimal number accuracy test
var x = 1.999999999999999; //16 digits
var y = 1.9999999999999999; //17 digits
var z = 11.999999999999999; //17 digits

console.log(x); //1.999999999999999
console.log(y); //2
console.log(z); //11.999999999999998

var x = 16.99999999999999; //16 digits
var y = 161.9999999999999; //16 digits
var z = 161.99999999999999; //17 digits

console.log(x); //16.99999999999999
console.log(y); //161.9999999999999
console.log(z); //162 
</script>

Note

If you want to get accurate result, take non-decimal number up to 15 digits and decimal numbers up to 16 digits. Since floating point arithmetic is not always 100% accurate.

JavaScript Special Type Numbers

JavaScript has two special types numbers : Infinity and NaN.

<script>
console.log(typeof(Infinity)) //Number
console.log(typeof(NaN)) //Number
</script>
  1. Infinity

    A JavaScript expression can return Infinity or -Infinity value as a result. For example, when you divide a number by 0 (zero), it will return Infinity

    <script>
    console.log(5/0); //Infinity
    console.log(-5/0); //-Infinity
    </script>
    
  2. NaN - Not a Number

    A JavaScript expression can return NaN value as a result. For example, when you divide a string by a number, it will return NaN

    <script>
    console.log("Hello"/4); //NaN
    console.log("Hello"-4); //NaN
    </script>
    

Note

When you will use + operator with in your JavaScript expression and your expression have string values, it will work as concatenation operator and JavaScript expression will not return NaN.

<script>
console.log("Hello"+4); //Hello4
</script>

Numbers As Objects

You can also defined numbers as objects with the help of new keyword. Using number as an object is not recommended since they slow down execution speed.

<script>
var x = 4; //number
var y = new Number(4); //object

console.log(typeof(x)) //number
console.log(typeof(y)) //object
</script>
What do you think?

I hope, now you have better understanding of javascript numbers. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.

Learn to Crack Your Technical Interview

 
Learn to Code

Start your journey today to learn coding!


Because learning to code is the first step and foreward to advance your career.


 GET STARTED NOW 

+
+