Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: AXA en 3 Noviembre 2021, 05:56 am



Título: como divido 3 divido dos y me de 1.5?
Publicado por: AXA en 3 Noviembre 2021, 05:56 am
puede parecer muy basico pero no consigo un jemplo ni que funcion para dividir con fracciones.
Solo encuentro diviciones enteras. Y una pregunta mas que voy a necesitar. Cual seria la funcion de redondeo?.


Título: Re: como divido 3 divido dos y me de 1.5?
Publicado por: Danielㅤ en 3 Noviembre 2021, 06:04 am
Hola, la división está bien porque 3 dividido en 2 es 1.5 que sería un entero y medio, no entiendo que es lo que no consigues hacer.

Por otro lado la función para redondear números es round():

https://www.padowan.dk/doc/spanish/Rounding.html


Saludos


Título: Re: como divido 3 divido dos y me de 1.5?
Publicado por: K-YreX en 3 Noviembre 2021, 06:44 am
Al realizar una operación entre 2 datos, el tipo del resultado es el mismo que el tipo de datos más grande de entre los dos operandos. Por ejemplo:
Operar 2 ints -> Resultado: int.
Operar int y float -> Resultado: float.
Operar int y short -> Resultado: int.
... Y así con cualquier tipo.

Si realizas una operación entre dos enteros, el resultado será un entero. Entonces:
Código
  1. int a = 3;
  2. int b = 2;
  3. printf("Resultado %d/%d = %d", a, b, a/b); // Resultado 3/2 = 1

Para obtener el resultado con decimales debes hacer una conversión de cualquiera de los datos a algún tipo decimal (float/double).
Código
  1. int a = 3;
  2. int b = 2;
  3. printf("Resultado %d/%d = %.1f", a, b, (float)a/b); // Resultado 3/2 = 1.5

PD: Para mostrar un número decimal hay que utilizar "%f". El ".1" indica que muestre el número con un solo dígito decimal.


Título: Re: como divido 3 divido dos y me de 1.5?
Publicado por: .xAk. en 20 Noviembre 2021, 01:48 am
ya verás con lós numeros  "long long" hazlo siempre en coma flotante convierte lo que no sean y muestra el resultado.



no enfrentes a un entero con un flotante, antes conviértelo (float)

redondear no te hace falta, pasa sólo al pasarlo a entero (int). En esas operaciones han de entrar con los participantes flotantes. (float)x dividido por (float)y es igual a (int)z


Título: Re: como divido 3 divido dos y me de 1.5?
Publicado por: K-YreX en 20 Noviembre 2021, 16:57 pm
ya verás con lós numeros  "long long" hazlo siempre en coma flotante convierte lo que no sean y muestra el resultado.



no enfrentes a un entero con un flotante, antes conviértelo (float)

redondear no te hace falta, pasa sólo al pasarlo a entero (int). En esas operaciones han de entrar con los participantes flotantes. (float)x dividido por (float)y es igual a (int)z


Imagino que el tema principal de este hilo está cerrado ya que el usuario que lo empezó no ha vuelto a contestar.
Sin embargo, respecto a este comentario hay cosas no muy claras:
no enfrentes a un entero con un flotante, antes conviértelo (float)
No es necesario, operar un int con un float ya da como resultado un float. Lo importante es guardarlo en una variable de tipo float y no int.

redondear no te hace falta, pasa sólo al pasarlo a entero (int)
Cuando se convierte un float en int no se redondea, se trunca.