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

看板Grad-ProbAsk作者 (wskgfrswklfsefaqjeaadsa)時間6年前 (2019/08/12 13:56), 編輯推噓2(205)
留言7則, 4人參與, 6年前最新討論串1/1
想問一下這個程式 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的值而已? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.215.73 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1565589401.A.DD1.html

08/12 14:07, 6年前 , 1F
當成整數做運算了啊
08/12 14:07, 1F

08/12 14:07, 6年前 , 2F
因為c裡面9/5是整數除法,會只取商數,就是1
08/12 14:07, 2F

08/12 14:07, 6年前 , 3F
如果你打9/5.0變整數除浮點數
08/12 14:07, 3F

08/12 14:07, 6年前 , 4F
編譯器會自動轉換型別,變成浮點數除浮點數
08/12 14:07, 4F

08/12 14:13, 6年前 , 5F
喔喔,感謝你喔
08/12 14:13, 5F

08/12 14:13, 6年前 , 6F
好像滿基本的,抱歉佔了一個版面
08/12 14:13, 6F

08/12 14:25, 6年前 , 7F
你可以打c*9/5 這樣應該就是浮點數惹
08/12 14:25, 7F
文章代碼(AID): #1TKF-PtH (Grad-ProbAsk)