This time I will bring you the example code of removing non-digits and retaining only one decimal place in JS. What are the precautions for removing non-digits and retaining only one decimal place in JS? The following are Let’s take a look at practical cases. //去除非数字
var clearNoNum = function (item) {
if (item!=null && item!=undefined) {
//先把非数字的都替换掉,除了数字和.
item = item.replace(/[^\d.]/g, "");
//必须保证第一个为数字而不是.
item = item.replace(/^\./g, "");
//保证只有出现一个.而没有多个.
item = item.replace(/\.{2,}/g, "");
//保证.只出现一次,而不能出现两次以上
item = item.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
//最多保留小数点后一位
var arr = item.split(".");
if (arr.length > 1) item = arr[0] + '.' + (arr[1].length > 1 ? arr[1].substr(0, 1) : arr[1]);
}
return item;
}
Supplement:
Let’s take a look at js processing numbers to retain 2 decimal places. It is not enough to force 2 decimal places. Add .001, keep two decimal places //Function: round the floating point number, take 2 digits after the decimal point
2, //keep 2 digits For decimals, such as: 2, 00 will be added after 2. That is 2.00
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Test</title> <script type="text/javascript" src="js/jq.js"></script> </head> <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); } document.write("四舍五入 <br/>") document.write("3.14159267保留2位小数:" + toDecimal(3.14159267)+"<br/>"); document.write("3.14159267强制保留2位小数:" + toDecimal2(3.14159267)+"<br/>"); document.write("3.14159267保留2位小数:" + toDecimal(3.14559267)+"<br/>"); document.write("3.14159267强制保留2位小数:" + toDecimal2(3.15159267)+"<br/>"); document.write("3.14159267保留2位小数:" + fomatFloat(3.14559267, 2)+"<br/>"); document.write("3.14159267保留1位小数:" + fomatFloat(3.15159267, 1)+"<br/>"); document.write("五舍六入 <br/>") document.write("1000.003保留2位小数:" + 1000.003.toFixed(2)+"<br/>"); document.write("1000.08保留1位小数:" + 1000.08.toFixed(1)+"<br/>"); document.write("1000.04保留1位小数:" + 1000.04.toFixed(1)+"<br/>"); document.write("1000.05保留1位小数:" + 1000.05.toFixed(1)+"<br/>"); document.write("科学计数 <br/>") document.write(3.1415+"科学技术后:"+3.1415.toExponential(2)+"<br/>"); document.write(3.1455+"科学技术后:"+3.1455.toExponential(2)+"<br/>"); document.write(3.1445+"科学技术后:"+3.1445.toExponential(2)+"<br/>"); document.write(3.1465+"科学技术后:"+3.1465.toExponential(2)+"<br/>"); document.write(3.1665+"科学技术后:"+3.1665.toExponential(1)+"<br/>"); document.write("精确到n位,不含n位 <br/>") document.write("3.1415精确到小数点第2位" + 3.1415.toPrecision(2)+"<br/>"); document.write("3.1455精确到小数点第3位" + 3.1465.toPrecision(3)+"<br/>"); document.write("3.1445精确到小数点第2位" + 3.1415.toPrecision(2)+"<br/>"); document.write("3.1465精确到小数点第2位" + 3.1455.toPrecision(2)+"<br/>"); document.write("3.166592679287精确到小数点第5位" + 3.141592679287.toPrecision(5)+"<br/>"); </script> <body> <input type="text" id="Score" /> </body> </html>
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
detailed explanation of the steps to implement fuzzy query with jQuerydetailed explanation of node Async/Await asynchronous programming implementationThe above is the detailed content of Example code for removing non-digits and retaining only one decimal place in JS. For more information, please follow other related articles on the PHP Chinese website!