黑马程序员技术交流社区

标题: double c=1/4+3/4;为什么不是1.0 [打印本页]

作者: .....淡定    时间: 2013-8-29 17:28
标题: double c=1/4+3/4;为什么不是1.0
本帖最后由 .....淡定 于 2013-8-31 15:27 编辑

double 不能内接受小数吗
作者: 黄兴旺    时间: 2013-8-29 17:34
/ 这个是整除,1/4=0.0,3/4=0.0   所以结果就是0.0

作者: 代文娟    时间: 2013-8-29 17:37
因为1/4中,1、4为整型运算之后也为整型,所以1/4=0;所以最后结果为0;
如果你这样写的话就为1.0了,double c=1.0/4+3.0/4;
作者: 行如止水    时间: 2013-8-29 18:15
答案是0;
1/4 = 0;  3/4 = 0;
所以结果是0.0;
作者: Thunder_-_Li    时间: 2013-8-29 18:37
兄弟小弟不才: 不是卖弄 只是说说自己的见解
   double c=1/4+3/4;  运行结果是整形数据   0; 但因为 变量类型是 double类型。做了一个自动类型提升。。。。 结果是0.0
作者: 328078121    时间: 2013-8-29 23:27
这个是算法:1/4是算整除,结果是0,3/4结果也是0 最后结果是0,然后赋值给double 就是0.0
作者: 泡沫之夏    时间: 2013-8-30 00:52
1/4是两个int类型,结果是0,自动提升0.0,同理3/4也是0.0所以结果还是0.0
作者: -OverFly-    时间: 2013-8-30 12:05
double c=1/4+3/4;     
//他会先运算1/4和3/4 ,在相加
//  1/4=0.25   计算机运算时取的int类型的  所有1/4就会等于0.0   
//  3/4=0.75   同样 3/4也等于0.0
//所以结果为0.0






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