java向下取整函數 C語言中一個整數除以另一個整數結果為什么只取整?
C語言中一個整數除以另一個整數結果為什么只取整?C語言規定除法運算符(/)運算結果的數據類型與除數的數據類型一致,因此一個整數除以另一個整數的結果就是一個整數。示例如下:int a=5,B=3flot
C語言中一個整數除以另一個整數結果為什么只取整?
C語言規定除法運算符(/)運算結果的數據類型與除數的數據類型一致,因此一個整數除以另一個整數的結果就是一個整數。
示例如下:
int a=5,B=3flot CC=a/B//輸出結果為1.0
說明如下:雖然變量C為浮點型,但根據常識,C應等于1.667,但由于除數(即變量a)的數據類型為int型,執行a/B后,運算結果會被轉換成int類型(即小數修約),所以a/B=1,然后將修約后的數據(即整數1)轉換成float類型(即1.0)并賦給變量C,最后C=1.0
因為int類型本身沒有小數部分,所以int和int類型數據得到的結果操作必須是整數類型,因此直接刪除小數部分,即使使用%F輸出,也不會是正確的結果。例如:int a=5,B=3float,CC=a/B//1.0c的輸出結果為float類型。根據常識,C應該等于1.667。但是,由于除數(變量a)的數據類型是int類型,執行a/B后,運算結果將轉換為int類型(即小數舍入),因此a/B=1,然后整數數據(即整數1)將轉換為float類型(即1.0)并賦給變量C,所以最后C=1.0語言有如下舍入方法:1,直接賦值給整數變量。例如:inti=2.5或I=(int)2.5此方法使用小數部分2的舍入。C/C中的整數除法運算符具有舍入函數(int/int),但整數除法對負數的舍入結果與C編譯器有關。三。使用地板功能。Floor(x)返回小于或等于x的最大整數。例如:Floor(2.5)=2 Floor(-2.5)=-3 4,使用cel函數。Ceil(x)返回大于x的最小整數。例如:Ceil(2.5)=3,Ceil(-2.5)=-2,floor()舍入為負無窮大,floor(-2.5)=-3;Ceil()舍入為正無窮大,Ceil(-2.5)=-2。