关闭

JS 限制用户只能输入小数点后2位,以及四舍五入

标签: functioninput
5360人阅读 评论(0) 收藏 举报

限制用户只能输入两位小数

function regInput(obj, reg, inputStr)
 {
  var docSel = document.selection.createRange()
  if (docSel.parentElement().tagName != "INPUT") return false
  oSel = docSel.duplicate()
  oSel.text = ""
  var srcRange = obj.createTextRange()
  oSel.setEndPoint("StartToStart", srcRange)
  var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
  return reg.test(str)
 }


 
<INPUT style="WIDTH: 50px;IME-MODE:disabled" value=0 name=flightback min="0" max="99" onKeyPress = "return regInput(this,/^/d*/.?/d{0,2}$/,String.fromCharCode(event.keyCode))"> %

 

 

JS保留两位小数(非强制) 
对于一些小数点后有多位的浮点数,我们可能只需要保留2位,但js没有提供这样直接的函数,所以我们得自己写函数实现这个功能,代码如下:
function changeTwoDecimal(x)
{
var f_x = parseFloat(x);
if (isNaN(f_x))
{
alert('function:changeTwoDecimal->parameter error');
return false;
}
var f_x = Math.round(x*100)/100;

return f_x;
}

功能:将浮点数四舍五入,取小数点后2位
用法:changeTwoDecimal(3.1415926) 返回 3.14
changeTwoDecimal(3.1475926) 返回 3.15
 
 

js保留2位小数(强制) 

对于小数点位数大于2位的,用上面的函数没问题,但是如果小于2位的,比如:
changeTwoDecimal(3.1),将返回 3.1,如果你一定需要3.10这样的格式,那么需要下面的这个函数:

function changeTwoDecimal_f(x)
{
var f_x = parseFloat(x);
if (isNaN(f_x))
{
alert('function:changeTwoDecimal->parameter error');
return false;
}
var f_x = Math.round(x*100)/100;
var s_x = f_x.toString();
var pos_decimal = s_x.indexOf('.');
if (pos_decimal < 0)
{
pos_decimal = s_x.length;
s_x += '.';
}
while (s_x.length <= pos_decimal + 2)
{
s_x += '0';
}
return s_x;
}

功能:将浮点数四舍五入,取小数点后2位,如果不足2位则补0,这个函数返回的是字符串的格式
用法:changeTwoDecimal_f(3.1415926) 返回 3.14
changeTwoDecimal_f(3.1) 返回 3.10

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43590次
    • 积分:297
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:3篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论