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