[理工] 程設 倍精準浮點數的問題

作者: a0953781935 (歐尼醬)   2019-08-12 13:56:39
想問一下這個程式
int main()
{
double f,c;
printf("please enter celsius degree\n");
scanf("%lf",&c);
f=(9/5.0)*c+32;
printf("f is %16.2f",f);
return 0;
}
為什麼f=(9/5.0)*c+32要打5.0才會是正確的
如果打f=(9/5)*c+32跑出來就是f=c+32的值而已?
作者: hinanaitenco (桃子好吃)   2019-08-12 14:07:00
當成整數做運算了啊
作者: mi981027 (呱呱竹)   2019-08-12 14:07:00
因為c裡面9/5是整數除法,會只取商數,就是1如果你打9/5.0變整數除浮點數編譯器會自動轉換型別,變成浮點數除浮點數
作者: a0953781935 (歐尼醬)   2019-08-12 14:13:00
喔喔,感謝你喔好像滿基本的,抱歉佔了一個版面
作者: mathtsai (mathtsai)   2019-08-12 14:25:00
你可以打c*9/5 這樣應該就是浮點數惹

Links booklink

Contact Us: admin [ a t ] ucptt.com