Directorio
primero mira el codigo
#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;
}
Resultado de salida:
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
en conclusión:
En lenguaje C, / se redondea hacia abajo, la situación específica:
tipo de dividendo | tipo de divisor | tipo de cociente | resultado de salida |
entero | entero | entero | redondear a la baja |
entero | entero | punto flotante | redondear hacia abajo +.0000 |
punto flotante | entero | punto flotante | redondeo |
entero | punto flotante | entero | redondear a la baja |
punto flotante | entero | entero | redondear a la baja |
entero | punto flotante | punto flotante | redondeo |
punto flotante | punto flotante | entero | redondear a la baja |
punto flotante | punto flotante | punto flotante | redondeo |
En resumen, el redondeo solo se realiza cuando todos son de coma flotante, el dividendo y el cociente son de coma flotante y el divisor y el cociente son de coma flotante, en otros casos se redondea hacia abajo.
Mejorar:
Si queremos redondear hacia arriba: simplemente haga que el resultado sea un flotador redondeado, luego +0.5 y redondee hacia arriba (lanzar).
Por ejemplo
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。