c语言编程,浮点型变量和整形变量能不能相除

如题所述

可以相除,计算机先将整型变量值的类型自动转换为浮点型(但是整型变量本身的数据类型和值并不改变),之后进行浮点数的运算。


举例如下:

int a1=4, a2;
float b1 = 5.2, b2;
a2 = b1/a1;  // 运算结果为1,因为a2为int类型,所以将5.2/4=1.3的结果转换为int型,即舍去小数部分
b2 = b1/a1;  // 运算结果为1.3,因为b2为float类型,可以表示小数,所以将5.2/4=1.3的结果直接赋值给变量b2

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-11-22
可以是可以的,但这涉及到C的隐式类型转换,是不提倡的编程风格

浮点型除以整型时,整型变量首先被转换为浮点类型,然后执行除的操作,结果为浮点类型;

类似的问题,釜底抽薪的做法是彻底搞清楚C的隐式类型转换是如何进行的,如整型提升等等;但是记不太清楚了,推荐阅读 《C语言参考手册》(C,A Refenrece manual)的相关章节;

但是编程时应该尽量避免,类似的运算;本回答被提问者和网友采纳
第2个回答  2012-11-25
可以,只不过相除之后得出的结果是浮点型的数据
第3个回答  2012-11-12
可以啊,没问题
1.2/3或则3/1.2都可以
第4个回答  2012-11-12
可以的 但是结果是浮点型