黑马程序员技术交流社区

标题: 数据类型转换德邦问题 [打印本页]

作者: xiaodixing    时间: 2014-5-29 00:48
标题: 数据类型转换德邦问题
下面的运算,经过手算结果是1.1多为什么程序显示成6.5e+000多呢??????

int main(void){
   double result = 0.0;
   int a = 5;
   int b = 8;

   result = (double)(a+b) / 2;

   printf("result=%.2e",result);
   return 0;
}


作者: Guardian_Angel    时间: 2014-5-29 01:44
额。。请问一下你怎么手算出来是1.1多的?明显手算就是(8+5)/2=6.5。int main(void){
   double result = 0.0;
   int a = 5;
   int b = 8;

   result = (double)(a+b) / 2;  //这里是指你算的时候将整型变量a,b强制转换成double  类型并除以2,然后输出结果应该是double类型
                                                 //则输出结果应该是result = 6.500000                       
                  
   printf("result=%.2e",result);   //你采用的是科学技术法输出,并且有效小数位数是两位,那结果应该就是6.50e+000撒。相当于是6.50乘以e的0次方。
                                                     //所以输出正确。是你自己计算错误。  
   return 0;
}

作者: xiaodixing    时间: 2014-5-29 20:33
恩,明白了,非常感谢




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