js 中移除非数字最多保留一位小数的实现代码如下所示:
- // 去除非数字
- 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;
- }
补充:
下面看下 js 处理数字保留 2 位小数, 强制保留 2 位小数不够补上. 00
1, 保留两位小数 // 功能: 将浮点数四舍五入, 取小数点后 2 位
2,// 制保留 2 位小数, 如: 2, 会在 2 后面补上 00. 即 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>
总结
以上所述是小编给大家介绍的 JS 中移除非数字最多保留一位小数, 希望对大家有所帮助, 如果大家有任何疑问请给我留言, 小编会及时回复大家的. 在此也非常感谢大家对脚本之家网站的支持!
来源: http://www.jb51.net/article/139797.htm