js精度问题,求高手指点??? 2000 * (19000/36882) = 1030.312000 * (8640/36882) = 468.522000 * (3510/36882) = 190.342000 * (585/36882) = 31.722000 * (4642/36882) = 251.722000 * (505/36882) = 27.38为什么结果的和是 1999.99 而不是2000 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.chinaret.com/user/topic_view.aspx?id=264ba1a2-eef9-4236-be15-960aeac00db6 http://www.cnblogs.com/bennman/archive/2011/06/09/2076568.html sum.toFixed(2);js计算故有弊端 2000 * (19000/36882) 这些保留2位的话,精度已经不够了一起计算,或者保留足够精度 var a = 2000 * (19000/36882) + 2000 * (8640/36882) + 2000 * (3510/36882) + 2000 * (585/36882) + 2000 * (4642/36882) + 2000 * (505/36882)var a1 = 2000 * (19000/36882)var a2 = 2000 * (8640/36882)var a3 = 2000 * (3510/36882)var a4 = 2000 * (585/36882)var a5 = 2000 * (4642/36882)var a6 = 2000 * (505/36882)alert(Math.round(a * 1000) / 1000)alert(Math.round((a1+a2+a3+a4+a5+a6)*1000) /1000) 我的程序里是个循环就是 aaa += 2000 * (19000/36882) aaa += 2000 * (8640/36882) ......所有就 1999.99 了6楼的方法没法在程序里实现呀。。 这在算法里算是非常简单的一种情形了,用小学算法就解决了:这些算式,共同点都是一个变化的数*(2000/36882)所以在循环里只要让aaa+=变化的数,在循环结束后让a*(2000/36882)即可,至于要保留多少位,再自己处理。这样不仅可以消除中间的计算导致的精确度损失,也能提高计算效率。 struts2 ajax标签和struts2+jquery+json使用情况 我编写的一个滑动门菜单不成功,大家帮我看看如何修改 改个背景就这么难??? js变量作用域及可访问性 父页面与iframe与window.open [急急急]在母页面是否可以控制子页面执行函数 求日历控件+学习资料 跪求《JavaScript技术大全》一书!!!!! 防止重复提交(UP有分)急 父-子-孙 三个窗口的互访问题。用iframe,相互值传递问题。 各位帮帮忙。帮我看看jquery这里如何得到返回的值。 如何从一个表格中得到用JS动态生成的输入框的值
js计算故有弊端
一起计算,或者保留足够精度 var a = 2000 * (19000/36882) + 2000 * (8640/36882) + 2000 * (3510/36882) + 2000 * (585/36882) + 2000 * (4642/36882) + 2000 * (505/36882)
var a1 = 2000 * (19000/36882)
var a2 = 2000 * (8640/36882)
var a3 = 2000 * (3510/36882)
var a4 = 2000 * (585/36882)
var a5 = 2000 * (4642/36882)
var a6 = 2000 * (505/36882)alert(Math.round(a * 1000) / 1000)
alert(Math.round((a1+a2+a3+a4+a5+a6)*1000) /1000)
aaa += 2000 * (8640/36882)
......所有就 1999.99 了6楼的方法没法在程序里实现呀。。
这些算式,共同点都是一个变化的数*(2000/36882)
所以在循环里只要让aaa+=变化的数,在循环结束后让a*(2000/36882)即可,至于要保留多少位,再自己处理。这样不仅可以消除中间的计算导致的精确度损失,也能提高计算效率。