C语言里的除法

目录​​​​​​​​​​​​​​

先看代码

总结一下:

改进:


先看代码

#include <stdio.h>

int main()
{
	int a=5,a1=14,b=2,c=10,d=3;
	float a2 = 14.00,c1 = 10.00,d1 = 3.00;
	int num1,num2, num3,num31,num32,num322;
	float num11,num21,num22,num33,num311,num3111;
	
	num1 = a / b;
	num11 = a/b;
	
	num2 = c / d;
	num21 = a1/d1;
	num22 =c / d;

	num3 = c1 / d;
	num31 = c/d1;
	num311=c/d1;
	num3111=c1 / d;
	num32 = c1/d1;
	num322= a2/d1;
	num33 = c1/d1;//都为浮点型。
	printf("num1 = %d,num11 = %f\n",num1,num11);
	printf("num2 = %d,num21 = %.2f,num22 = %f\n",num2,num21,num22);
	printf("num3 = %d,num31 = %d,num311 = %.2f,num3111= %.2f,num32 = %d,num322= %d,num33 = %f\n",num3,num31,num311,num3111,num32,num322,num33);
	return 0;


}

输出结果:

num1 = 2,num11 = 2.000000  
num2 = 3,num21 = 4.67,num22 = 3.000000
num3 = 3,num31 = 3,num311 = 3.33,num3111= 3.33,num32 = 3,num322= 4,num33 = 3.333333


总结一下:

在C语言里,/是向下取整,具体情况:

被除数的类型 除数的类型 商的类型 输出结果
整型 整型 整型 向下取整
整型 整型 浮点型 向下取整+.0000
浮点型 整型 浮点型 四舍五入
整型 浮点型 整型 向下取整
浮点型 整型 整型 向下取整
整型 浮点型 浮点型 四舍五入
浮点型 浮点型 整型 向下取整
浮点型 浮点型 浮点型 四舍五入

总结一下,只有在均为浮点型、被除数和商为浮点型、除数和商为浮点型三种中为四舍五入,其他情况下为向下取整。

改进:

如果我们想要得到向上取整:只需要让结果为四舍五入的浮点型,然后+0.5后取整(强制转换)。

例如

5.00/2 = 2.50, int( 2.50+.5)=3。

14/3.00= 4.67,int (4.67+.5)=5。

10.00/3.00= 3.33,int (3.33+.5)=3。

猜你喜欢

转载自blog.csdn.net/weixin_48060069/article/details/127108902