Problemas con la división

16/04/2004 - 13:33 por alberto | Informe spam
Tengo que hacer la operación (9/5) * c + 32 pero el resultado me sale
siempre sin decimales. ¿Cómo lo soluciono?

Gracias

Preguntas similare

Leer las respuestas

#1 José Miguel Torres
16/04/2004 - 13:57 | Informe spam
Hola Alberto.

Suponiendo que por ejemplo c=2 si pones (9/5) * 2 + 32 debe darte 35.6 pero
da 34. El problema está en el paréntesis. En este caso no es necesario ya
que el compilador dará prioridad al + que al * o /, es decir que si pones
(float) 9/5* 2 + 32 o (float) 9/5* c + 32, en tu caso te dará el resultado
en decimales 35.6, fíjate que hemos forzado la conversión a float.

Saludos

José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es


"alberto" escribió en el mensaje
news:
Tengo que hacer la operación (9/5) * c + 32 pero el resultado me sale
siempre sin decimales. ¿Cómo lo soluciono?

Gracias


Respuesta Responder a este mensaje
#2 William Fernandez
16/04/2004 - 15:35 | Informe spam
Si divides números enteros en resultado .NET te lo va a
representar siempre en enteros, para solvertar la
division cambia la operacion por:

(9/5f) * c + 32;





Tengo que hacer la operación (9/5) * c + 32 pero el


resultado me sale
siempre sin decimales. ¿Cómo lo soluciono?

Gracias


.

Respuesta Responder a este mensaje
#3 Carlos Loria
16/04/2004 - 19:58 | Informe spam
Hola Alberto. Las soluciones que te brindan Jose y William
te resuelven ese problema.

Lo que acostumbro a haces es esto:

(9.0/5) *c + 32

Espero que mi comentario te sea de utilidad,



Saludos de Costa Rica

Carlos Loria


"alberto" wrote in message
news:
Tengo que hacer la operación (9/5) * c + 32 pero el resultado me sale
siempre sin decimales. ¿Cómo lo soluciono?

Gracias


Respuesta Responder a este mensaje
#4 Octavio Hernandez
17/04/2004 - 00:00 | Informe spam
Hola,

Lee en la referencia del lenguaje lo relativo al funcionamiento de los
operadores, es un tema que es importante comprender bien.
Varios elementos a tener siempre en cuenta:
- Las constantes literales enteras (como '9' y '5' en tu caso) que
utilicemos en el código son de tipo int.
- Las constantes literales con punto decimal son de tipo double, a menos que
se les añada el sufijo 'f' (si se quiere que sean de tipo float). También
existe el sufijo 'M' para las constantes de tipo Decimal.
- En las operaciones aritméticas, el compilar genera código para los
operadores en dependencia de los tipos de los operandos. Si ambos operandos
son enteros, se compilará una operación entera; si al menos uno de los
operandos es de punto flotante, ambos operandos se convertirán a double y se
realizará una operación de punto flotante.

En tu caso, vale cualquiera de estas formas:

fahr = 9.0 / 5 * c + 32;
fahr = 9d / 5 * c + 32;
fahr = 9d / 5d * c + 32;

Yo personalmente usaría la primera, o directamente:

fahr = 1.8 * c + 32;


"alberto" escribió en el mensaje
news:
Tengo que hacer la operación (9/5) * c + 32 pero el resultado me sale
siempre sin decimales. ¿Cómo lo soluciono?

Gracias


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida