operadores y tipos

25/06/2008 - 01:34 por Fabián | Informe spam
una cosa tan simple me esta demorando,
favor, ayuda,

tengo un problema con el operador de división, en la siguiente fórmula,
me da en todos los casos y pruebas x1 = 0 a pesar de que x2 y x3 tienen
valores asignado.
Si cambio el operador a *, + , - funciona pero con / no.

double x1;
int x2;
int x3;

x1 = (x2 / x3);

que estoy haciendo mal ?

desde ya muchas gracias...

Fabián.
Principiante.
 

Leer las respuestas

#1 Alberto Poblacion
25/06/2008 - 07:37 | Informe spam
"Fabián" wrote in message
news:
una cosa tan simple me esta demorando,
favor, ayuda,

tengo un problema con el operador de división, en la siguiente fórmula,
me da en todos los casos y pruebas x1 = 0 a pesar de que x2 y x3 tienen
valores asignado.
Si cambio el operador a *, + , - funciona pero con / no.

double x1;
int x2;
int x3;

x1 = (x2 / x3);

que estoy haciendo mal ?



x2 y x3 son enteros. Por lo tanto, al escribir x2/x3 el compilador genera
una división entera, cuyo resultado es siempre un entero. Asi que si x2 es
menor que x3, el resultado es cero. El resultado se lo asignas a x1 que es
un double, por lo que se realiza una conversión implícita de ese cero de int
a double, y sigue siendo cero.

Solución: x1=((double)x2)/x3;

Preguntas similares