目录
先看代码
总结一下:
改进:
#include
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。