当前页面: 开发资料首页 → JSP 专题 → JS中保留两位小数的毛病(高手请进!)不服气你就试一下!
JS中保留两位小数的毛病(高手请进!)不服气你就试一下!
摘要: JS中保留两位小数的毛病(高手请进!)不服气你就试一下!
<script language="javascript">
function toFloat(f,s)
{
var re=/^[/d]+[/.]{0,1}[/d]*$/;
if (!re.test(f)){return false;}
var t=Math.pow(10,s);
var val=Math.round(f*t);
var dort=val-Math.floor(val/t)*t;
for (i=s;i>1;i--)
{
if (dort
{
dort='0'+dort;
}
}
return ((s>0)?(Math.floor(val/t)+'.'+dort):(Math.floor(val/t)));
}
</script>
<input name="transmoney" type="text" onblur="this.value=toFloat(this.value,2);" />
第一个参数传要格式化的值
第二个参数为保留小数的位数
这个函数在使用 toFloat(1.025,2)的时候返回 1.02,
这个步骤没有错,但是计算的时候发现
1.025*100 居然等于 102.499999999998 ,怎么规避这个错误?
高手请解决
回忆你小时候学12.34*56.78的时候是怎么做的
呵呵,小学没做过!
结帖!
跑的够远的啊