Home > Article > Web Front-end > js method to get two digits after the decimal point of float_javascript skills
Below we will introduce to you the implementation method of retaining two decimal places in JavaScript:
Rounding
The following processing results will be rounded:
var num =2.446242342; num = num.toFixed(2); // 输出结果为 2.45
No rounding
The following processing results will not be rounded:
The first method is to round up the decimal side first:
Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77
The second method is to treat it as a string and use regular matching:
Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) // 输出结果为 15.77,不能用于整数如 10 必须写为10.0000
Note: If it is a negative number, please convert it to a positive number first and then calculate, and finally convert it back to a negative number
Example of JavaScript retaining two decimal places:
<script type="text/javascript"> //保留两位小数 //功能:将浮点数四舍五入,取小数点后2位 function toDecimal(x) { var f = parseFloat(x); if (isNaN(f)) { return; } f = Math.round(x*100)/100; return f; } //制保留2位小数,如:2,会在2后面补上00.即2.00 function toDecimal2(x) { var f = parseFloat(x); if (isNaN(f)) { return false; } var f = Math.round(x*100)/100; var s = f.toString(); var rs = s.indexOf('.'); if (rs < 0) { rs = s.length; s += '.'; } while (s.length <= rs + 2) { s += '0'; } return s; } function fomatFloat(src,pos){ return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos); } //四舍五入 alert("保留2位小数:" + toDecimal(3.14159267)); alert("强制保留2位小数:" + toDecimal2(3.14159267)); alert("保留2位小数:" + toDecimal(3.14559267)); alert("强制保留2位小数:" + toDecimal2(3.15159267)); alert("保留2位小数:" + fomatFloat(3.14559267, 2)); alert("保留1位小数:" + fomatFloat(3.15159267, 1)); //五舍六入 alert("保留2位小数:" + 1000.003.toFixed(2)); alert("保留1位小数:" + 1000.08.toFixed(1)); alert("保留1位小数:" + 1000.04.toFixed(1)); alert("保留1位小数:" + 1000.05.toFixed(1)); //科学计数 alert(3.1415.toExponential(2)); alert(3.1455.toExponential(2)); alert(3.1445.toExponential(2)); alert(3.1465.toExponential(2)); alert(3.1665.toExponential(1)); //精确到n位,不含n位 alert("精确到小数点第2位" + 3.1415.toPrecision(2)); alert("精确到小数点第3位" + 3.1465.toPrecision(3)); alert("精确到小数点第2位" + 3.1415.toPrecision(2)); alert("精确到小数点第2位" + 3.1455.toPrecision(2)); alert("精确到小数点第5位" + 3.141592679287.toPrecision(5)); </script>
Use Javascript to get the two decimal places after the float type. For example, 22.127456 is changed to 22.13. How to do it?
1. Discard the decimal part and keep the integer part
parseInt(5/2)
2. Round up, if there is a decimal, add 1 to the integer part
Math.ceil(5/2)
3, rounded up.
Math.round(5/2)
4, round down
Math.floor(5/2)
Alternative method
1. The stupidest way
2. Regular expressions work well
3. He is smarter...
4. Friends who know how to use new things...but IE5.5 is required to support it.
5.js retains 2 decimal places (mandatory)
For decimal places greater than 2 digits, it is no problem to use the above function, but if it is less than 2 digits, such as: changeTwoDecimal(3.1), it will return 3.1. If you must need a format like 3.10, then you need the following This function:
Function: Round floating point numbers, take 2 digits after the decimal point, if less than 2 digits, add 0,
This function returns the format of the string. Usage: changeTwoDecimal(3.1415926) returns 3.14 changeTwoDecimal(3.1) returns 3.10