<script>
function roundFun(numberRound,roundDigit)
{
    var digit;
digit=1;
digit=Math.pow(10,roundDigit)
return (Math.round(numberRound*digit)/digit);
}
alert(roundFun(3.1245,2))
</script>

解决方案 »

  1.   

    <script>
    function roundFun(numberRound,roundDigit)
    {
        var digit;
    digit=Math.pow(10,roundDigit)
    return (Math.round(numberRound*digit)/digit);
    }
    alert(roundFun(3.1245,2))
    </script>
    不行吗?
      

  2.   

    没有用啊,还是会出现,
    Math.pow(10,roundDigit)不就是
    for(var i=0;i<roundDigit;i++)
    {
        digit = digit*10
    }
      

  3.   

    不会啊,我用你的函数对22.759999999999998进行四舍五入,好像没有问题啊。
    顺便给出我的代码:<script>
    function jsround(num, rounddigit){
    return Math.round(num * Math.pow(10, rounddigit))/Math.pow(10, rounddigit);
    }
    </script>
    Number to round: <input type=text id=text1 value=0 onchange="if(isNaN(this.value))this.value=0"><br>
    Round digit:<input type=text id=text2 value=0 onchange="if(isNaN(this.value))this.value=0"><br>
    <input type=button value=round onclick="alert(jsround(text1.value,text2.value))">
      

  4.   

    toFixed(n)
    alert(22.759999999999998.toFixed(4))
      

  5.   

    楼上的,toFixed要ie5.5以上版本的支持!
    这个兼容5.0<script>
    String.prototype.fn = function(n)
      { s=""
        for(i=0;i<n;i++)s+=this
        return s
      }
    Number.prototype.fix = function(num)
      {with(Math)return (round(this.valueOf()*pow(10,num))/pow(10,num)).toString().search(/\./i)==-1?(round(this.valueOf()*pow(10,num))/pow(10,num)).toString()+"."+"0".fn(num):(round(this.valueOf()*pow(10,num))/pow(10,num));
      }
    alert((5.31-1.31).fix(2));
    </script>
    上边的代码返回任意数的保留n位小数值,为了考虑货币的效果(xx.xx)形势,所以长了一点儿,因为4.00的格式是不能显示的(以数字方式),如果不用顾及那个用下边的就行
    <script>
    Number.prototype.fix = function(num)
      {with(Math)return round(this.valueOf()*pow(10,num))/pow(10,num);
      }
    alert((5.31-1.31).fix(2));
    </script>
      

  6.   

    function roundFun(numberRound,roundDigit)
    {
        var digit;
    digit=Math.pow(10,roundDigit)
    return (Math.round(numberRound*digit)/digit);
    }
    其中numberRound我用的是一个记算后得到的浮点数 用roundFun(xxx,2)记算后的值,有时候是老老实实的两位,有时候就不是,
    得到的小数要么是.999999999,要么是.0000000000002之类的不断头晕中
      

  7.   

    首先:我给你的两个代码你看了吗?那个是没有问题的
    其次:你的xxx为多少的时候,你的函数会出问题?
      

  8.   

    http://www.bridgecraftonline.com/newDollars/
    你在里面购物后,选择更改所购产品的数量,你就会发现了.:>
      

  9.   

    问题:parseInt(911) ==》911
    parseInt(0911) ==》0