c语言:double a = 3 / 2,a等于多少
2026/7/13 19:34:04 网站建设 项目流程

c语言中不同类型的数据进行计算,会进行默认类型转换,转换的原则是向精度高的方向转换,这样能保证不丢失精度。

那么下边的代码,c、d、e、f分别是什么?

c、d、e的值是1.0;f的值是1.5;std::cout打印的最后一个3/2是1.

表达式的数据类型要转换成精度最高的那个数据类型的精度,这点没问题,但是要区分表达式的边界。

c = a/b这样是一个表达式,但是在计算a/b的是时候a/b本身也是一个表达式,这个表达式中都是int数据类型,也就不会转换成浮点类型。a/b的结果是1,1最后转化为double就是1.0。一个大的表达式,是由一些小的基本表达式组合而成,而数据类型转换,均是在最基本的表达式中进行转换,再逐渐组合成最后的表达式。而不是以最终的表达式,从这个大表达式中找出精度最高的数据类型,然后在基本表达式中直接进行类型转换。

e和f的区别:f中将a转换为了double类型,这样表达式就一个数据是double一个是int,表达式的类型就转换为了double;e中是对a/b的结果转换为double,a/b表达式还是int类型。

#include <iostream> int main() { int a = 3; int b = 2; double c; c = a / b; double d = 3 / 2; double e = (double)(a / b); double f = (double)(a) / b; std::cout << "c:" << c << ",d:" << d << ",e:" << e << ",f:" << f << "," << 3 / 2 << std::endl; return 0; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询