resta - ¿Cómo obtener fracciones en una división entera?
resta de fracciones (2)
Debes lanzar uno u otro para float
o double
.
int x = 1;
int y = 3;
// Before
x / y; // (0!)
// After
((double)x) / y; // (0.33333...)
x / ((double)y); // (0.33333...)
¡Por supuesto, asegúrese de almacenar el resultado de la división en double
o float
! No te sirve de nada si almacenas el resultado en otro int
.
Con respecto al comentario de @ Chad (" [tailsPerField setIntValue:tailsPer]
"):
No pase un doble o flote a setIntValue
cuando haya establecido setDoubleValue
, etc. disponible. Probablemente sea el mismo problema que mencioné en el comentario, donde no está utilizando un molde explícito, y está obteniendo un valor no válido porque un doble se está leyendo como un int.
Por ejemplo, en mi sistema, el archivo:
#include <stdio.h>
int main()
{
double x = 3.14;
printf("%d", x);
return 0;
}
productos:
1374389535
porque el doble se intentó leer como un int.
Esta pregunta ya tiene una respuesta aquí:
¿Cómo se dividen dos enteros y se obtiene una respuesta doble o flotante en C?
Usa el moldeado de texto. Por ejemplo,
main()
{
float a;
int b = 2, c = 3;
a = (float) b / (float) c; // This is type-casting
printf("%f", a);
}