理解不了的问题 没办法,事情就是这个样子滴。float是一种不精确的数据类型 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 toFixed();alert((10.01+10).toFixed(2))括号里的数字是小数位数 这是JS的实现问题,我们无能为力的,只能四舍五入一下Math.round 自己打造个修正函数:<script>function psum(op, var1, var2 ){ if( (var1+"").indexOf(".")!= -1 || (var2+"").indexOf(".")!= -1 ) { var len1 = 0; var len2 = 0; if( (var1+"").indexOf(".")!= -1 ) len1 = (var1+"").split(".")[1].length; if( (var2+"").indexOf(".")!= -1 ) len2 = (var2+"").split(".")[1].length; var p = Math.pow(10,len1>len2?len1:len2); var1 = parseInt( var1 * p ); var2 = parseInt( var2 * p ); switch(op) { case "+": return (var1 + var2)/p; case "-": return (var1 - var2)/p; case "*": return (var1 - var2)/(p*p); case "/": return (var1 / var2); } } else { switch(op) { case "+": return (var1 + var2); case "-": return (var1 - var2); case "*": return (var1 - var2); case "/": return (lena / lenv); } }}alert( psum( "+", 10.01, 10 ) );</script> <script>alert((10.01*100+10*100)/100) </script> Javascript的浮点数计算是有点问题的,一般都是先转化成整数再计算。 那是因为继承了c语言强制转换 double 为 float 时精度调整的问题,实际上这是c语言调整精度所致. div的button的click会触发两次 jsp 后面加参数问题 如何用jquery来实现添加删除功能? 复选tree,选中节点后收缩treepanel,再展开,复选框上的勾不见了 鼠标经过li列表 JS读取COOKIES并判断 js操作xml,向xml中添加一个节点 如何將網頁做成qq 聊天器那樣的界面 让人困惑的流程选择!请帮忙看看! 如何用javascript调用由bcb开发的webservice? 关于在JS里面调用另外一个JS问题 二维数组的传递问题
Math.round
{
if( (var1+"").indexOf(".")!= -1 || (var2+"").indexOf(".")!= -1 )
{
var len1 = 0;
var len2 = 0;
if( (var1+"").indexOf(".")!= -1 )
len1 = (var1+"").split(".")[1].length;
if( (var2+"").indexOf(".")!= -1 )
len2 = (var2+"").split(".")[1].length;
var p = Math.pow(10,len1>len2?len1:len2);
var1 = parseInt( var1 * p );
var2 = parseInt( var2 * p ); switch(op)
{
case "+":
return (var1 + var2)/p;
case "-":
return (var1 - var2)/p;
case "*":
return (var1 - var2)/(p*p);
case "/":
return (var1 / var2);
}
}
else
{
switch(op)
{
case "+":
return (var1 + var2);
case "-":
return (var1 - var2);
case "*":
return (var1 - var2);
case "/":
return (lena / lenv);
}
}
}alert( psum( "+", 10.01, 10 ) );
</script>