首页 新闻 会员 周边 捐助

javascript一个让人搞不懂的计算问题 求大婶指点

0
[已解决问题] 解决于 2013-12-18 17:45

alert(200.5*3);===>弹出:601.5//没问题

alert(200.56*3);===>

弹出这个货色出来:

求指点怎么算出来的呢?

思思博士的主页 思思博士 | 菜鸟二级 | 园豆:224
提问于:2013-12-18 14:56
< >
分享
最佳答案
0

js浮点计算需要谨慎啊,看楼上  0.3-0.2 != 0.2-0.1 就知道了,具体js高级编程里边有解释。

如果知道小数位数 可以取整再计算。如:200.56*100*3/100 = 601.68

奖励园豆:5
Vinton.Liu | 初学一级 |园豆:187 | 2013-12-18 15:47

顶!

bitbug | 园豆:470 (菜鸟二级) | 2013-12-18 17:13

 你看过js高级编程?我准备买,不知道这本书怎么样,想听听你的观后感

思思博士 | 园豆:224 (菜鸟二级) | 2013-12-18 17:17

@思思博士: 看过了,这本评价很高的。有js基础的前提下,这本是js进阶必备之书,多看。

                 可以直接入手第三版。《JavaScript高级程序设计》

Vinton.Liu | 园豆:187 (初学一级) | 2013-12-18 17:22
其他回答(2)
0

这是因为200.56本身就是浮点数,浮点数本身就是不精确数字,所有运算后带一个尾数很正常。像C#里面的double之类的,你用了有些时候也会出现这种情况,所以C#里面还有decimal来表示精确数字。嗯,你应该学习点基础知识。

ocean | 园豆:824 (小虾三级) | 2013-12-18 15:00

 何为基础

支持(0) 反对(0) 思思博士 | 园豆:224 (菜鸟二级) | 2013-12-18 15:03

@思思博士: 计算机基础,将计算机原理时会讲到CPU里面怎么表示浮点数及浮点数计算,这就是基础。

支持(0) 反对(0) ocean | 园豆:824 (小虾三级) | 2013-12-18 15:06

@ocean: 看来这位仁兄功力深厚啊,都研究到CPU了,受教了

支持(0) 反对(0) 思思博士 | 园豆:224 (菜鸟二级) | 2013-12-18 16:51

@思思博士: 这都是大学里面学的基础知识

支持(0) 反对(0) Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-18 17:03

@Albert Fei: 顶!

支持(0) 反对(0) bitbug | 园豆:470 (菜鸟二级) | 2013-12-18 17:13

@Albert Fei: 惭愧,大学荒废了

支持(0) 反对(0) 思思博士 | 园豆:224 (菜鸟二级) | 2013-12-18 17:18

@思思博士: 好像是微机原因里面学的吧

支持(0) 反对(0) Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-18 17:21

@思思博士: 这都是大学里面很基础的课程,没什么高深的。很多人总是抱怨大学学的东西老旧,结果显示碰到问题就一筹莫展了。

支持(0) 反对(0) ocean | 园豆:824 (小虾三级) | 2013-12-19 13:37
0

0.3-0.2 != 0.2-0.1

ThreeTree | 园豆:1490 (小虾三级) | 2013-12-18 15:20

 这个例子很经典啊

支持(0) 反对(0) 思思博士 | 园豆:224 (菜鸟二级) | 2013-12-18 17:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册