C++中float double的使用问题,如图!为啥double的输出不对呢?

如题所述

写常数时:
19、3、5 这样写就是int;
4.0、3.14 这样写就是double;
4.0f、3.14f 这样写就是float;
运算时,低精度的会自动向高精度转换,比如有double时,int和float都会转换成double,你那个表达式中sqrt()返回一个double,所以其他int都转成了double,最终结果也是double。

y1的结果是54,呵呵,54不就是54.0么,只是你显示到屏幕的时候没有把小数部分显示出来而已,改成y1=x1/5+x2+0.1,就能看到54.1了。
double跟int没有任何包含关系,只是在计算机内存中的存储方式不一样。例一中用4.0是因为sqrt函数要求传入一个double型数据。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-28
你有没有发现你没有给u2赋值
输出的是一个没有初始化的值。理论上来说什么值都是可能的
相似回答