<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>
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>
function roundFun(numberRound,roundDigit)
{
var digit;
digit=Math.pow(10,roundDigit)
return (Math.round(numberRound*digit)/digit);
}
alert(roundFun(3.1245,2))
</script>
不行吗?
Math.pow(10,roundDigit)不就是
for(var i=0;i<roundDigit;i++)
{
digit = digit*10
}
么
顺便给出我的代码:<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))">
alert(22.759999999999998.toFixed(4))
这个兼容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>
{
var digit;
digit=Math.pow(10,roundDigit)
return (Math.round(numberRound*digit)/digit);
}
其中numberRound我用的是一个记算后得到的浮点数 用roundFun(xxx,2)记算后的值,有时候是老老实实的两位,有时候就不是,
得到的小数要么是.999999999,要么是.0000000000002之类的不断头晕中
其次:你的xxx为多少的时候,你的函数会出问题?
你在里面购物后,选择更改所购产品的数量,你就会发现了.:>
parseInt(0911) ==》0