¿Por qué 5/2 da como resultado ‘2’ incluso cuando uso un flotador? [duplicate]

2 minutos de lectura

¿Por que 52 da como resultado 2 incluso cuando uso
alex señor

Ingresé el siguiente código (y no tuve problemas de compilación ni nada):

float y = 5/2;
printf("%f\n", y);

La salida fue simplemente: 2.00000

Mis matemáticas no están mal, ¿verdad? ¿O me equivoco con el operador /? Significa dividir, ¿no? ¿Y 5/2 debería ser igual a 2,5?

¡Cualquier ayuda es muy apreciada!

  • Porque el resultado es float. Pero los operandos y, por lo tanto, la operación en sí misma es un número entero.

    – Eugenio Sh.

    26 oct 2016 a las 14:09

  • Pregunta relacionada aquí.

    – WhozCraig

    26 de octubre de 2016 a las 14:11

1646958608 360 ¿Por que 52 da como resultado 2 incluso cuando uso
R_Kapp

5 es un int y 2 es un int. Por lo tanto, 5/2 utilizará la división de enteros. si reemplazas 5 con 5.0f (o 2 con 2.0f), haciendo uno de los intsa floatobtendrá la división de punto flotante y obtendrá el 2.5 tu esperas. También puede lograr el mismo efecto lanzando explícitamente el numerador o el denominador (por ejemplo, ((float) 5) / 2).

  • 5. o 2. servirá.

    – alk

    26 oct 2016 a las 14:10

  • @alk: Me gusta tener los ceros allí; no tienen ningún propósito real, pero con mi vista deteriorada, a menudo pierdo . por sí mismo, pero todavía no me he perdido una .0.

    – R_Kapp

    26 oct 2016 a las 14:14

  • Entonces propondría usar .00, ya que lo más probable es que tengas dos ojos. 😉

    – alk

    26 oct 2016 a las 14:16

  • @alk ¡Gracias a los dos! 😀

    – Alex Señor

    26/10/2016 a las 14:35

¿Por que 52 da como resultado 2 incluso cuando uso
alca

¿Por qué 5/2 da como resultado ‘2’ incluso cuando uso un flotador?

porque lo haces noutilizar float“. 5/2 es una división entera. Solo su resultado (2) se convierte implícitamente en un float convertirse en 2. (Cuidado con el punto).

1646958610 819 ¿Por que 52 da como resultado 2 incluso cuando uso
usuario7075607

Debes hacer una conversión tipográfica adecuada.

float y = (float) 5/2 

El programa tratará los números como int.
es dividir dos ints y escribiendo esto a float. Por lo tanto, la respuesta es 2.0

Debes escribir cast

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad