数字相加减的问题 SOS!!!! textbox1.value=parseFloat(12.24)+parseFloat(12.35) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要得到准确值,可以先转换成整数,在计算,然后除n*10,也可以用vbscript做,可以准确点 textbox1.value=parseFloat(12.24)+parseFloat(12.35)我用的就是这样,可得到的是24。58999999995不是24。59我要的是正确的直,用javascript 写的。 try<script>alert(qswhAdd(12.24,12.35))function qswhAdd(n1,n2){var r1,r2,m;try{r1=n1.toString().split(".")[1].length}catch(e){r1=0}try{r2=n2.toString().split(".")[1].length}catch(e){r2=0}m=Math.pow(10,Math.max(r1,r2))return (n1*m+n2*m)/m}</script> 用四舍五入啊,我以前也为这个头大,现在的方法是:var a=12.24var b=12.35var v=Math.round(eval(a+b)*100)/100;alert(v) 这个方法我也试过,可我的程式必须是一句话,就要写完的代码(在asp.net的datagrid中加载的)有没有,更简单的,一个函数就可以实现的 我给200分呀,不然我就要 下岗了!!!救命呀。 m为要转化的数,n为小数位数,对于小数末尾的0会舍弃<script>alert(decimal(28.5899,2));function decimal(m,n){ with(Math){ return round(m*pow(10,n))/pow(10,n); }}</script> http://expert.csdn.net/Expert/topic/1109/1109616.xml?temp=.2280237 我不知道你用的浏览器的版本,我用的IE6SP1下不存在你的问题。这是我测试的结果,很正常<script>function j(){var a=document.form1.a1.valuevar b=document.form1.a2.value//var v=Math.round((parseFloat(a)+parseFloat(b))*100)/100;var v=parseFloat(a)+parseFloat(b)document.form1.a3.value=v;}</script><form name=form1><input type=text value=12.24 name=a1><input type=text value=12.35 name=a2><input type=text value=0 name=a3><input type=button value=计算 name=b onclick="j()"> 我觉得也很奇怪,12.24+12.35直接就等于24.59啊<script>alert(12.24+12.35)</script> freefalcon(心宇) 的方法挺好,先收藏 <script>alert(111112.24+111112.35)</script>freefalcon(心宇) 的方法包含在我上述的方法里,呵呵 我已经找到了方法:textbox1.value=(parsefloat(a)+parsefloat(b)).toFixed(2)光用parsefloat(a)+parsefloat(b))会不时的出现控制不了的结果。 toFixed要求5.5,你肯定是截取两位么? 语法哪里错了 foolbirdflyfirst童鞋近来看下 调用js文件出错! 没分了 但是还问个问题 希望大家能帮忙 请问这个HTML文件要怎么修改才能正确浏览,且生成的文件也能正确浏览? 如何做到在一个循环中出了错误,忽略错误接着循环呢? 500分求菜单功能。 将数字转换成字符串的函数是什么? 怎么实现checked为空时,点选"提交"会弹出"请你选择"的语句? 一个WEB打印问题 如何用js实现IE菜单栏里的发送>>电子邮件页面这个功能? 怎样解决XML+XSLT显示树型列表的问题,高手哪去了
我用的就是这样,
可得到的是24。58999999995
不是24。59
我要的是正确的直,用javascript 写的。
alert(qswhAdd(12.24,12.35))
function qswhAdd(n1,n2){
var r1,r2,m;
try{r1=n1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=n2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (n1*m+n2*m)/m
}
</script>
var a=12.24
var b=12.35
var v=Math.round(eval(a+b)*100)/100;
alert(v)
有没有,更简单的,一个函数就可以实现的
我给200分呀,不然我就要 下岗了!!!
救命呀。
<script>
alert(decimal(28.5899,2));
function decimal(m,n){
with(Math){
return round(m*pow(10,n))/pow(10,n);
}
}
</script>
<script>
function j()
{
var a=document.form1.a1.value
var b=document.form1.a2.value
//var v=Math.round((parseFloat(a)+parseFloat(b))*100)/100;
var v=parseFloat(a)+parseFloat(b)
document.form1.a3.value=v;
}
</script><form name=form1>
<input type=text value=12.24 name=a1>
<input type=text value=12.35 name=a2>
<input type=text value=0 name=a3>
<input type=button value=计算 name=b onclick="j()">
<script>
alert(12.24+12.35)
</script>
textbox1.value=(parsefloat(a)+parsefloat(b)).toFixed(2)
光用parsefloat(a)+parsefloat(b))会不时的出现控制不了的结果。