在C中,除法是有一些特殊的。
如果是兩個整數型的變量相除,如
10/3
,其結果是
3
,而不是
3.3333333
;又如
10/4
,其在C中的結果是
2
,而不是
2.5
。也就是說,整數型變量相除,如果其結果從數學角度上看是小數,無論是否可以四舍五入進位,C都會講小數點後的部分抛棄。
隻有将初始化變量為浮點數類型,其在C中相除的結果才會具有小數。
此外,如
double a=5/4;
,其數學計算的結果是
1.25
,但是在C中輸出的結果是
1
,即使是在語句中初始化變量
a
為浮點數。
這是因為初始化的變量是
a
,而不是算子
5
或
4
,這兩個數的類型依舊是整數型,其結果依舊遵循整數型變量相除的結果,隻是其結果
1
被指派給了一個浮點數變量
a
。
如果想對兩個浮點數相除的結果取整,即隻取其整數部分,可以像這樣做:
int centimeter = 35;
int foot = centimeter / (100 * 0.3048);
利用
int
可以取整。