parseFloat(numberRound)*100 = 30772.499999999996round 方法
返回与给出的数值表达式最接近的整数。Math.round(number) 必选项 number 参数是要舍入到最接近整数的值。说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。
返回与给出的数值表达式最接近的整数。Math.round(number) 必选项 number 参数是要舍入到最接近整数的值。说明
如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。
解决方案 »
- 隐藏表格单元格
- JS判断重名radio问题!!
- onclick事件,急,请帮帮忙,谢谢
- 高分求解,怎样实现不允许拖入某区域的功能?
- 立即送分!!几个同名select控件,如何知道用户触发了其中一个的onchange事件?除了name还有什么属性可以唯一标识一个select呢??
- Help在线等待
- window的什么方法可以让页面reload?????
- EVAL问题.我不知道错在哪儿了?
- 请问如何在打开一个框架页面的窗口中再改变框架页面中一个frame的src
- 帮我写个function把: 判断输入的是999-9999型的数呀!!!!!
- 真实点击与模拟点击的区别问题
- ●如果图片宽大于100按100显示,并提示"有大图"文字,请高手指点…
var sOffsetPara = 1000000 ;
return parseFloat(parseFloat(numberRound*sOffsetPara).toFixed(roundDigit)/sOffsetPara).toFixed(roundDigit);
}TO:meizz(梅花雪) ,我是WIN2000,SP1,win2k3+IE6没问题吗?
{
Number.prototype.toFixed = function(d)
{
var s=this+"";if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
if (new RegExp("^((-|\\+)?\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
{
s="0"+ RegExp.$1, pm=RegExp.$2, a=RegExp.$3.length, b=true;
if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)
{
for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
if(a[i]==10){a[i]=0; b=i!=1;} else break;} //author: meizz
}
s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
}if(b)s=s.substr(1); return (pm+s).replace(/\.$/, "");} return this+"";
};
}自己写了一个修正的方法,应该可以满足你的需求了,若是你觉得系统的那个 toFixed() 方法有问题的话,你可以把我这段代码最外面的那层if判断去掉,全用自己写的这个方法!这个方法我暂时测试了一下,好象没有什么问题,不过可能测试不够,你自己再测试一下吧。
alert("50 * (61545 / 10000) = " + ( 50 * (61545 / 10000) ))
alert("50 * 61545 / 10000 = " + ( 50 * 61545 / 10000 ))
</script>
一个解决方法是,你不要直接round到4之前,而是先多round几位,再round。to meizz: 动用RegExp有点太夸张了。
http://blog.joycode.com/ghj/archive/2003/12/18/9474.aspx
var n = 0.009;
alert(n +" 系统的函数返回 "+ n.toFixed(2));
Number.prototype.toFixed = function(d)
{
var s=this+"";if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
if (new RegExp("^((-|\\+)?\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
{
s="0"+ RegExp.$1, pm=RegExp.$2, a=RegExp.$3.length, b=true;
if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)
{
for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
if(a[i]==10){a[i]=0; b=i!=1;} else break;}
}
s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
}if(b)s=s.substr(1); return (pm+s).replace(/\.$/, "");} return this+"";
};alert(n +" meizz的函数返回 "+ n.toFixed(2));
//-->
</SCRIPT>