Round a number to 2 decimal places in JavaScript
In this article, you’ll learn how to Round a number to 2 decimal places in JavaScript. For this we will use two in-built methods in JavaScript namely toPrecision() and toFixed() methods.
Also, we use parseFloat() function which returns a floating-point number.
Now let’s see how it happen…
But before we move on, we should know the logic of rounding the number.
Logic:
- Look at 2 decimal places after the decimal point.
- Then see the next digit.
- If next digit >=5, then increase value of last/previous digit by one.
- If next digit <5, then it is same as last digit.
- Ignore all digits after next digit.
parsefloat() method
If we are passing any string or any number as argument inside this method so what will happen inside it,
If it is in the number format, it converts to float format.
Here, that is in the floating point.
The value of the floating point comes in decimal.
NOTE:
- It returns NaN( not a number) if it is found first character of string is not a number
- It returns floating point only when it is found first character of string is a number.
- It ignores spaces
For example,
<script> // returns floating point var a = parseFloat("234.67923"); document.write(a +"<br>"); // returns only first number var b = parseFloat("20 23 56"); document.write(b +" <br>"); // returns NaN var c = parseFloat("codespeedy123"); document.write(c); </script
OUTPUT:
234.67923 20 NaN
toPrecision() method
Used to convert a number to a specified length with rounding the result.
It’s return value is string.
Decimal point and NULL are added if necessary.
Syntax:
variable_name.toPrecision(x);
where, x: number of digit that’s we want to round up.
If we have to round up 2 decimal places using this method,
We take number of digit 4
Because, it’s count starts from before decimal point.
Our Code:
<script> var a = parseFloat("24.67923"); document.write(a.toPrecision(2) +"<br>"); var b = parseFloat("20.2"); document.write(b.toPrecision(4) +" <br>"); var c = parseFloat("20.2567"); document.write(c.toPrecision(4) +" <br>"); var c = parseFloat("0.002345"); document.write(c.toPrecision(4)); </script>
OUTPUT:
25 20.20 20.26 0.002345
As you can clearly see in the last output it’s count start from non zero digit before decimal point.
Due to this drawback, we couldn’t get the result that we wanted.
Hence we mostly use tofixed() method.
toFixed() method
It converts any number into string.
Specifies how many decimal places that we are needed after the decimal point also round up the number.
It’s count starts after decimal point.
Syntax:
variable_name.tofixed(x)
x: number of digits after decimal point.
Note: Default It Is Zero.
Right now, here we needed two decimal places after decimal point.
For this we will write,
variable_name.tofixed(2)
Here is Our Code:
<script> var a = parseFloat("20.2"); document.write(a.toFixed(2) +" <br>"); var b = parseFloat("20.2567"); document.write(b.toFixed(2) +" <br>"); var c = parseFloat("0.002345"); document.write(c.toFixed(2)); </script>
OUTPUT:
20.20 20.26 0.00
Leave a Reply