• Domingo 17 de Noviembre de 2024, 21:26

Autor Tema:  Division devuelve el valor Cero  (Leído 2171 veces)

beatlejuan

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Division devuelve el valor Cero
« en: Martes 15 de Junio de 2010, 21:11 »
0
Hola

Tengo un problema al trabajar con una división de numeros positivos, la cual me devuelve el valor cero, la operación es la siguiente:

(196/198)*100

al resolverla con la calculadora de windows me devuelve el siguiente valor: 98.9898989898989898989898989898

ya intente de varias formas, convirtiendo el resultado en double, float, decimal, hasta en cadena y el resultado es el mismo, supongo que es por la gran cantidad de decimales de la que consta el resultado, al parecer infinito.

Espero que alguién se haya encontrado alguna vez con este tipo de problema, sino agradeceria me ayudaran a solucionarlo.

Saludos  :hola:

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Division devuelve el valor Cero
« Respuesta #1 en: Martes 15 de Junio de 2010, 21:56 »
0
El problema esta en la forma en que C# trata las constantes.

Dependiendo el valor de la constante, C# utilizara el tipo mas "adecuado" a ese valor.

En tu caso toma los valores 196 y 198 como enteros, y entonces realiza una division entera en lugar de una division de punto flotante, y el resultado de la division entera 196/198 es cero, por lo tanto al multiplicarlo por 100 dara cero tambien.

La solucion es decirle EXPLICITAMENTE a C# el tipo de tu constante, agregandole el sufijo adecuado a la constante. Ejemplo, si quieres usar valores de tipo float:

Código: C#
  1.  
  2.             resultado = (196f / 198f)* 100f;
  3.  
  4.  

si utilizas valores de tipo double:

Código: C#
  1.  
  2.             resultado = (196d / 198d)* 100d;
  3.  
  4.  

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

beatlejuan

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Division devuelve el valor Cero
« Respuesta #2 en: Miércoles 16 de Junio de 2010, 19:08 »
0
Bien  muchas gracias ProfesorX, me ha servido un buen la solución y como lo pensé sabia que solo hacìa falta un pequeño detallito, pequeñas cosas de la programación.

Saludos ! :D