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

为什么结果不是-11.500000?

#include <stdio.h>
int main()
{
    int a,b,c,d;
    double result;
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    result = a/b-c*d;
    printf("%f\n", result);
    return 0;
}


提问者:Drawlight 2015-09-26 20:32

个回答

  • onemoo
    2015-09-26 21:01:00
    已采纳

    因为等号右侧的表达式 a / b - c * d 中的a b c d都是整型,整型间的加减乘除运算的结果还是整型,所以等号右侧的表达式的值还是整型,也就是不包含小数部分的。

    那么虽然你的result是浮点型,但用整型来初始化它,它也是不会有小数部分的。

  • twofoolish
    2015-12-03 16:35:50

    把int a, b, c, d;改成float a, b, c, d;就可以了