¿Cómo se dividen dos enteros y se obtiene una respuesta doble o flotante en C?¿Cómo obtener fracciones en una división entera?
Respuesta
Debe enviar una u otra a 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 que usted es almacenar el resultado de la división en un double
o float
! No le sirve de nada si almacena el resultado en otro int
.
Respecto @ comentarios de Chad ("[tailsPerField setIntValue:tailsPer]
"):
no transfiere un doble o flotar a setIntValue
cuando se tiene setDoubleValue
, etc. disponibles. 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;
}
salidas:
1374389535
debido a que el doble se intentó leerse como un int.
Derecha. Convierta los enteros antes de realizar la división. – DOK
doble tp; doble x; x = tn; // (tn es un int) normalmente 10 tp = x/fn; // fn también es un int (normalmente 5) pero todavía obtengo 0 –
@Chad: el código se ve bien. ¿Cómo has determinado que el resultado es cero? ¿Estás haciendo algo como 'printf ("% d ", tp)'? Eso intenta imprimir el contenido de un doble como int, y no obtendrá los resultados correctos. Su compilador debería haberle advertido si lo hizo. Para un doble de la cadena de formato es '% lf'. –
Utilice el tipo de fundición. Por ejemplo,
main()
{
float a;
int b=2, c= 3;
a=(float)b/(float)c; // This is type-casting
printf("%f",a);
}
- 1. división entera en php
- 2. División entera en Common Lisp?
- 3. La división entera en Python
- 4. La división entera siempre cero
- 5. C división entera y piso
- 6. Redondeo de división entera con negativos en C++
- 7. ¿Cómo se hace una división entera (firmada o no) en ARM?
- 8. Fracciones en Python
- 9. Float es 0 después de la división entera
- 10. División entera vs división flotante -> ¿Quién es responsable de proporcionar el resultado?
- 11. LLVM obtener constante entera detrás de Valor *
- 12. Fracciones con precisión decimal
- 13. Reducir Integer fracciones Algoritmo
- 14. División entera en comparación con el cociente de piso: ¿por qué este sorprendente resultado?
- 15. /euclidiana número entero división de la división
- 16. Conversión de fracciones en entidades html
- 17. cómo leer una matriz entera en la función MEX
- 18. ¿Cómo se representan las fracciones en las computadoras?
- 19. ¿Por qué el código de división entera da la respuesta incorrecta?
- 20. ¿Qué símbolo de operador de división escogerías?
- 21. Escala pantalla entera en XNA
- 22. ¿Cómo obtener el cociente y el resto de la división
- 23. ¿Cómo encontrar el resto de una división en Ruby?
- 24. ¿Cómo puedo generar una partición entera aleatoria uniforme?
- 25. ¿Cómo tener una "división personalizada()" en una lista con strtk?
- 26. Representación NSString de fracciones usando unicode
- 27. Android - Cómo establecer una fuente personalizada para la aplicación entera
- 28. ¿Cómo causar una división intencional por cero?
- 29. PHP, ¿Cómo atrapar una división por cero?
- 30. División doble en C
"decimal" es una representación (como "hexadecimal", "octal", "binario") que se aplica a un entero o números no enteros. Quieres decir, supongo, "obtener un resultado no entero". – leonbloy
Así es como obtienes fracciones (números racionales) con la división entera 'printf ("% d% d /% d "x/y, x% y, y);'. ¿Estás seguro de que no quieres un resultado no entero? – Brendan