悟心

成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。 上人生的旅途罢。前途很远,也很暗。然而不要怕。不怕的人的面前才有路。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  93 随笔 :: 1 文章 :: 103 评论 :: 0 Trackbacks
<script language="javascript"> 
var a = "0.11"
var b = "0.2801"
var c = "1.002"
var sum1 = parseFloat(a)+parseFloat(b)+parseFloat(c); 
var sum2 = (parseFloat(a)+parseFloat(b)+parseFloat(c)).toFixed(4
document.write(
"a+b+c="+sum1); 
document.write(
"<br/>"
document.write(
"a+b+c="+sum2) 
</script> 

a,b,c相加本来为1.
3921,但sum1得出的结果为:1.3921000000000001,显然不正确,通过toFixed(n)方法修正后(n是精确的小数点位数),得到正确结果。 

例如:parseFloat(
1.392143).toFixed(3)=1.392
posted on 2010-07-16 19:01 艾波 阅读(13270) 评论(1)  编辑  收藏 所属分类: Javascript

评论

# re: Js中parseFloat()方法所产的精度不一致问题 2015-10-26 16:04 test1
chrome下运行结果如下,个人认为精度的偏移与parseFloat无关,是加法运算的问题

> 0.11 + 0.2801 + 1.002
> 1.3921000000000001  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: