日期:2014-05-16  浏览次数:20390 次

Javascript如何实现一个四舍五入的显示器?
用户在输入框输入数值后, 网页显示出这个数值的四舍五入结果.

1. 如何保证用户输入的是数字, 包括负号, 而不是字母之类的?

2. 如何正确实现四舍五入?



HTML code

<div><input id="t1"type="text"maxlength="20"/></div>





JScript code

document.getElementById("qq").innerHTML="结果: "+toString(parseFloat(t1.value).toFixed(2));




我是这么写的. 但是有问题. 请教如何修改? 谢谢!

我的全部分只剩下40. (^ _ ^)



------解决方案--------------------
1. 如何保证用户输入的是数字, 包括负号, 而不是字母之类的?
答:利用正则
2. 如何正确实现四舍五入?
答:字符串截取判断

------解决方案--------------------
JScript code

var str = "-2.646";
var reg = /\d+(\.\d+)?$/;
if(reg.test(str)){
   var result = parseFloat(str).toFixed(2); //结果 -2.65
}

------解决方案--------------------
正则 判断是否数字很简单, 然后可以用楼上的方法得到四舍五入 比字符串截取准确点
------解决方案--------------------
JScript code
<input type="text" name="nb" id="nb" onblur="check(this)" onkeyup="this.value=this.value.replace(/[^\d.-]/,'')"/>
<script type="text/javascript">
    function check(obj){
        var v=obj.value;
        if (v=="")return;
        if(!isNaN(v)){
            obj.value = tofixed(v,2);
        }else{
            obj.value = "";
            alert("输入有误");
        }
    }
    var tofixed=function(v,len)
    {
        var add = 0;
        var s,temp;
        var start = v.indexOf(".");
        if(v.substr(start+len+1,1)>=5)add=1;
        temp = Math.pow(10,len);
        s = Math.floor(v * temp) + add;
        return s/temp;
    }
</script>