黑马程序员技术交流社区

标题: 3*0.1 == 0.3 将会返回什么?true 还是 false? [打印本页]

作者: 李永佳    时间: 2016-1-6 14:43
标题: 3*0.1 == 0.3 将会返回什么?true 还是 false?
false,因为有些浮点数不能完全精确的表示出来。
作者: 云鱼    时间: 2016-1-6 21:29
试了一下,结果为false但不知道为什么
作者: luyang18    时间: 2016-1-6 22:17
3.0*0.1==0.3将会返回什么呢?
作者: 1055513951    时间: 2016-1-6 23:09
false,因为3*0.1运算过程中自动类型提升了
作者: hard    时间: 2016-1-7 08:14
对于这样的问题,实践是检验真理的最好的方法
作者: Dabing大兵    时间: 2016-1-7 10:06
false,因为3*0.1运算过程中自动类型提升了
作者: 542826323    时间: 2016-1-7 16:31
学习了,真的实践才是检验真理的唯一法宝。
作者: 雪中飞    时间: 2016-1-8 09:31
false,因为3*0.1在运算过程中类型自动提升为int型了,结果为0
作者: foolishlovepig    时间: 2016-1-8 15:13
我去。。点进来才发现楼主是自问自答。。。
作者: ly123456    时间: 2016-1-8 20:43
float提升为int
作者: jacky左    时间: 2016-1-8 23:00
实践才是检验真理的唯一法宝,太对了
作者: justinwww    时间: 2016-1-8 23:02
false 因为3是int类型
作者: yehua1026    时间: 2016-1-8 23:26
非常好!!
作者: 小五哥    时间: 2016-1-8 23:30
false,绝对的
作者: s616622575    时间: 2016-1-9 00:41
表示看不懂
作者: txw126    时间: 2016-1-9 19:12
0.0哈哈哈哈哈哈哈
作者: 土豆片炒肉灬    时间: 2016-1-9 19:57
false,好像是的
作者: keaitao0321    时间: 2016-1-9 20:19
是false,但3*0.1并没有提升到int类型哦,仍是double类型的,至于为什么的是false,刘意老师的视频里讲过你把10进制转换成2进制算就知道了
作者: n_Nie1991    时间: 2016-1-9 22:50
编写一段小代码,运行一下吧,很简单的
作者: wangjianfeng    时间: 2016-1-9 22:53
false  3*0.1 会将0.1提升为int 型再参与运算吧  
作者: wyb414    时间: 2016-1-9 23:07
不用想是false
作者: 擎天柱    时间: 2016-1-9 23:08
精度问题:
作者: 擎天柱    时间: 2016-1-9 23:09
精度问题:double n1 = 3.0*0.1;         double n2 = 3.0;         float n3 = 3.0f;         //         System.out.println ("n1:" + n1);//0.3000000...0004                 System.out.println ("n2:" + n2);//3.0                 System.out.println ("n3:" + n3);//3.0                 //                                 System.out.println (n1 == n2);//false                 System.out.println (n1 == n3);//false                 System.out.println (n2 == n3);//true




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2