integer and float division in C

>celsius = (5 / 9) * (fahren - 32);
>不管打什麼fahren數字,celsius都是 0
>我把 5 或 9 換成 5.0 或 9.0, 再compile和execute就正常。

C或Java高階語言重視數字型別,將除法運算(/ operator)分成整數除法及實數除法。
整數除法的商結果為整數,小數忽略。
實數除法的商結果為實數。
決定整數或實數除法是由運算子(operand)型別決定:
(1)  整數 / 整數 = 整數商
(2)  實數 / 實數 = 實數商
(3)  整數 / 實數 = ?數商
(4)  實數 / 整數 = ?數商

例子 5/9 屬於情況(1)所以得到結果為0;
至於 5.0 / 9.0 屬於情況(2)所以得到結果有小數。
至於情況(3)及(4)結果為何,可以實驗一下。
(情况 3 跟 4 结果會以最精確的型別為準,輸出實數商)

除了加.0將整數變實數,也可以利用轉型運算子,寫法如下:

  celsius = ((float) 5 / (float) 9) * (fahren - 32);

數字前面加 (float) 運算子可將其型別轉為float。

沒有留言:

how to install and use Jeddict AI Assistant on NetBeans IDE 23+

Jeddict AI Assistant  為適用於  NetBeans IDE 23 以上版本的插件,能夠連接大語言模型,協助編寫程式碼,大幅提升開發體驗,讓程式撰寫更輕鬆、更智慧。以下簡介其安裝方法及功能。 A.安裝與解除安裝 安裝步驟: ...

總網頁瀏覽量