为什么带括号和不带括号的乘法会有很大的不同?

GY-*_*Y-Z 2 c multiplication parentheses

如果我不加括号地乘以得到华氏度数,我得到的数与乘以它们时得到的数不同。这是为什么?

#include <stdio.h>

int main (){
    double userinput, fahr1, fahr2;

    printf("Enter a number in Cels ");
    scanf("%lf", &userinput);

    fahr1 = userinput*(9/5)+32;
    fahr2 = userinput*9/5+32;

    printf("fahr1 = %f and fahr2 = %f \n", fahr1, fahr2);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

#include <stdio.h>

int main (){
    double userinput, fahr1, fahr2;

    printf("Enter a number in Cels ");
    scanf("%lf", &userinput);

    fahr1 = userinput*(9/5)+32;
    fahr2 = userinput*9/5+32;

    printf("fahr1 = %f and fahr2 = %f \n", fahr1, fahr2);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Wil*_*ell 5

(9/5)是整数除法,计算结果为1。但userinput*9被评估为双精度数,然后除以 5 也被视为双精度数。