问答详情
源自:3-1 运算符号是啥

求大佬解释一下编程里的除法问题

int a=3;

int b=4;

double c=a/b;

double d=(double)a/(double)b;

printf("%f",c);

printf("%f",d);

为什么c值为0.000000,d值为0.750000?

提问者:mehie 2019-03-16 17:25

个回答

  • mehie
    2019-03-16 18:01:55

    我是这么想的,

    3个苹果4个人分,人和苹果的数据类型是int,在计算机眼里人和苹果只能是0、1、2这种整数出现不能以0.75这种数出现。每个人分到0.75个苹果,不足1整个苹果,所以最后结果还是0。

    至于double d、e、f、的值不为零,是因为它们的除数或被除数中出现了double类型的数值,苹果或人允许以不是整数形式的double出现,所以最后的结果也变成了0.75的这种情况。

  • mehie
    2019-03-16 17:48:44

    https://img.mukewang.com/5c8cc6390001d44809120465.jpg

    除法运算中,除数与被除数的数据类型,好像影响了最后的运算结果。有大佬能解释一下吗?