c语言中,两个整型数据相除,结果用浮点型变量储存,为什么输出的结

c语言中,两个整型数据相除,结果用浮点型变量储存,为什么输出的结果不对。比如409÷5应该等于81.80但输出的确实81.00 ?

C语言中,两个整数相除,结果是也是整数,如果被除数不是除数的整数倍,那么结果会直接舍弃小数,只保留整数部分,并且不会进行四舍五入,是直接舍掉小数,注意。
用你举的例子:409/5,它的结果是81,不是81.8,如果要让结果保留小数部分,那么可以考虑给被除数或除数写成带小数的形式,比如写成:409.0/5或409/5.0或者409.0/5.0追问

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型,结果就是81.80,为什么同样是浮点型的结果,前一个小数点后面的就被舍去了呢?

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型,结果就是81.80,为什么同样是浮点型的结果,前一个小数点后面的就被舍去了呢?

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型,结果就是81.80,为什么同样是浮点型的结果,前一个小数点后面的就被舍去了呢?

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型,结果就是81.80,为什么同样是浮点型的结果,前一个小数点后面的就被舍去了呢?

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

我是说结果用浮点型变量储存,被除数与除数用整型储存,得出的是81.00,如果被除数换成浮点型结果就是81.80。同样是浮点型的结果,为什么前面一个的小数位上的书会变成00

追答

我已经说过了,再说一遍,在C语言中,两个整数相除,结果也是整数,直接舍弃小数部分,如果有一个是浮点数,那么C语言编译器会对另一个整数进行类型转换,从整型转换成浮点型,再进行运算,结果保留小数部分。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-16
C语言中的除法:
1. 运算结果与运算对象的数据类型有关,若除数和被除数都是int,则商是int。 例:9/2 = 4
2. 若除数 和 被除数 中有一个是浮点型数据,则商为浮点型。 例:9.0/2 = 4.500000
3. 例:
double a = 9 / 2;
printf("a = %lf \n", a);
运行结果: a = 4.000000
分析: 9 / 2 = 4 ,再将 4 赋值给 double a,
最后 4就以double类型输出,结果为4.000000
4. 例 :
double b = 9.0 / 2;
printf("b = %lf \n", b);
运行结果: a = 4.500000
分析: 9.0 / 2 = 4.5,再将 4.5 赋值给 double b,
最后 4.5 就以double类型输出,结果为4.500000
相似回答