JavaScript Number Methods

By | March 25, 2021
JavaScript Number Methods

In the last tutorial, we learned about JavaScript numbers and how to define them. When we use the simple number at the right side of the assignment operator it will be treated as a primitive number, but if we use the JavaScript Number() object to create a number it will be treated like a Number object.

Example

Vamware
<script>
    let p_num = 20; // primitive number
    let o_num = new Number(20); // Number object
    console.log(typeof p_num);   // number 
    console.log(typeof o_num);  // object
</script>

JavaScript Number methods and properties

Primitive number values like 1, 2, 3, etc do not support methods and properties because methods and properties are part of objects and only an object variable can access them.

However there built-in methods and properties associated with the JS Number() object, and at the background JS also makes sure that during runtime the same properties and method also available for the primitive number values.

This means all the properties and methods that are defined for Number() object can also be accessed through primitive number values.

In this JavaScript tutorial, we will learn all the major number methods that you should know.

JS Number toString() method

As the name suggests the toString() method converts the number into a string and returns it.

Example

<script>
    let num = 200;
    let str_num = num.toString();    // string
    console.log(str_num);   // 200 
    console.log(typeof str_num);  // string
</script>

By default, the toString() method converts the number into a decimal string of base 10, but we also specify the base number as a parameter for number conversion.

<script>
    let num = 200;
    let binary_num = num.toString(2); // binary
    let octal_num = num.toString(8);   //octal
    let decimal_num = num.toString(10);  //decimal(default)
    let hexa_num = num.toString(16);    //hexa
    console.log(binary_num);   //11001000
    console.log(octal_num);    // 310
    console.log(decimal_num);   // 200
    console.log(hexa_num);      //c8
</script>

JS Number toExponential() method

The toExponential() method convert the number into an exponential format or notation and return it as a string.

This method also accepts an integer value as an optional parameter that defines the number of characters after the decimal point.

Example

<script>
    let num = 91.23;
    let ex_1 = num.toExponential();
    let ex_2 = num.toExponential(4);
    console.log(ex_1);   //9.123e+1
    console.log(ex_2);   //9.1230e+1
</script>

The num.toExponential(); statement converts the 91.23 number into 9.123e+1 which is equivalent to 9.123 * 10.

JS Number toFixed() method

The toFixed() method determines how many decimal point numbers should be placed after the number. Similar to the toString() and toExponential() method it also return a string.

toFixed() method also accepts an optional parameter which default value is 0 which represents there should be no number after the decimal point and round the number if possible.

Example

<script>
    let num = 91.232345;
    let fix1 = num.toFixed()
    let fix2 = num.toFixed(0)
    let fix3 = num.toFixed(2)
    let fix4 = num.toFixed(4)
    console.log(fix1);    //91 (string)
    console.log(fix2);    //91 (string)
    console.log(fix3);    //91.23  (string)
    console.log(fix4);    //91.2323 (string)
</script>

toFixed() number comes in very handy when we want to specify fix number of decimal point numbers.

JS Number toPrecision() method

The toPrecision() method returns a specified length of number in a string format.

Example

<script>
    let num = 91.232345;
    let len1 = num.toPrecision(1);  // 1 digit long
    let len2 = num.toPrecision(2);   // 2 digit long
    let len4 = num.toPrecision(4);   // 4 digit long
    console.log(len1);   // 9e+1 = 9*10
    console.log(len2);    // 91
    console.log(len4);    // 91.23
</script>

The parameter value of toPrecision() must between 1 to 100, else it throw an error.

JS Number valueOf() method

The valueOf() method the value of the variable. It generally used to convert the Number object to a primitive number value.

Example

<script>
    let o_num = new Number(92.23234)
    let p_num = o_num.valueOf();
    console.log(p_num); // 92.23234
    console.log(typeof p_num) // number
</script>

Number conversion in JavaScript

There are three Global methods present in JavaScript that can be used to convert a value to a number data type value.

  • Number()
  • parseFloat()
  • parseInt()

Number() Method

JavaScript provides a global method Number() that can convert any legal number value to a primitive number.

Do not confuse the global Number() method with new Number() object both are different.

The Number() method can be very useful when you want to convert a JavaScript number string to a number data type for arithmetic operations.

Example

<script>
    console.log(Number(true)); // 1
    console.log(Number(false));  //0 
    console.log(Number("112"));  //112
    console.log(Number("  112"));  //112
    console.log(Number("112  "));  //112
    console.log(Number("112.23"));  //112.23
    console.log(Number("112,234"));  // NaN
    console.log(Number("112 123"));  //NaN
    console.log(Number("112J"));    // NaN
    console.log(Number("112e1"));   // 1120
    console.log(Number(new Date("2021-02-31"))); // 1614729600000
</script>

Behind the code

The Number() method converts the true and false to the corresponding 1 and 0 integer values. It also converts the Date object into Unix timestamp seconds. And if the specified argument is not a legal representation of number it returns NaN.

parseInt() Method

As the name suggests the parseInt() method is used to convert a number-like value to a primitive whole number. It converts the specified number-like value to an integer value. It parses the value from left to right and converts the value into a number if possible. It will return NaN if the passed value is not a legal number from left to right.

Example

<script>
    console.log(parseInt(true)); // NaN
    console.log(parseInt(false)); // NaN
    console.log(parseInt(-1)); // -1
    console.log(parseInt(2.23)); // 2
    console.log(parseInt("-2.32")); // -2
    console.log(parseInt("2 Years")); // 2
    console.log(parseInt("year 2")); // NaN
    console.log(parseInt("2 10 20")); // 2
    console.log(parseInt(new Date("2021-03-13"))); // NaN
</script>

Behind the code

Unlike the Number() method parseInt() method can not convert the boolean and date object into corresponding integer values so it returns NaN instead.

parseFloat() Method

The parseFloat() method converts the number-like value into a floating-point number. As JS does not have a dedicated data type for float the parseFloat() method converts the passed argument to the primitive number data type. If parseFloat() is not able to parse the value into a number, it simply returns NaN.

<script>
    console.log(parseFloat(true)); // NaN
    console.log(parseFloat(false)); // NaN
    console.log(parseFloat(-1)); // -1
    console.log(parseFloat(2.23)); // 2.32
    console.log(parseFloat("-2.32")); // -2.32
    console.log(parseFloat("2 Years")); // 2
    console.log(parseFloat("year 2")); // NaN
    console.log(parseFloat("2 10 20")); // 2
    console.log(parseFloat(new Date("2021-03-13"))); // NaN
</script>

For most cases, we use parseFloat() method to convert a JavaScript string value to a number value, but it does not work with boolean and Date objects. So as an alternative we can also use the Number() method to convert a string number to a primitive number data type.

Number Properties

There are few properties that are built-in to the Number object such as

  • MAX_VALUE: Return the possible largest number.
  • MIN_VALUE : Return the possible minimum number.
  • POSITIVE_INFINITY : Return the Positive Infinity
  • NEGETIVE_INFINITY : Return the negative Infinity
  • NaN : Return the Not a Number value.

Example

<script>
    console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
    console.log(Number.MIN_VALUE); //5e-324
    console.log(Number.POSITIVE_INFINITY); //Infinity
    console.log(Number.NEGATIVE_INFINITY);//-Infinity
    console.log(Number.NaN); //NaN
</script>

All these above 5 properties are available for Number. We can not access these properties with normal variables.

Example

let a = 23;
a.MAX_VALUE;  //undefined

Summary

  • Mostly all the methods and properties are available for both Number objects and number data types.
  • toString(), toExponential() and toFixed() methods return string numeric value.
  • In JavaScript to convert a string value to a number we can use either of these three global methods, Number(), parseInt(), parseFloat().
  • All these three methods are not number methods these are global methods.
  • Properties like MAX_VALUE, MIN_VALUE, POSITIVE_INFINITY, NEGETIVE_INFINITY and NAN can only be accessed using the Number keyword.

Leave a Reply

Your email address will not be published. Required fields are marked *