java向下取整函数 C语言中一个整数除以另一个整数结果为什么只取整?
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。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。