Dividir en JAVA

Iniciado por yeah69, 26 Mayo 2010, 01:18 AM

0 Miembros y 1 Visitante están viendo este tema.

yeah69

Buenas, tengo un fallo....bastante tonto pero es que ahora mismo no caigo que hago mal:

tengo 2 datos double que los divido entre ellos en otro double, y siempre me sale que vale infinity.

valgan esto: 8.0 / 4.0

o esto :  8.2 / 4.1

o con otros valores, siempre me pone que el resultado es infinity.
Este es el codigo:

double division = (dato/datoUs);

Alguien me puede ayudar? gracias

Leyer

#1
WTF!, debes estar haciendo otra cosa por hay, por que no hay problema en eso

yeah69

no lo entiendo yo tampoco la verdad, voy a formatearlos a ver.... es que además he ido metiendo System.out.println con los valores que van cogiendo y me salen divisiones como las que he puesto:
8.0/4.0   8.2/4.1   9.4/6   y siempre el resultado es el mismo, infinity....

MasterPM2

Mejor pone todo el codigo, para detectar el error, ya que claramente no es ese.
ANBU暗部   Ansatsu Senjutsu Tokushu Butai暗殺戦術特殊部隊 Fuerza militar especial táctica de eliminación........MyDarker Sid3

<firma retirada, no la vuelvas a poner o se te sancionara>  <- - Amenazas

yeah69

public void calculaPoPonderado(){
double[]datoArea = new double[cadenaArea.length];
double[]datoPo = new double[cadenaPo.length];
double[]datoPoUnitario = new double[cadenaPo.length];
double areaTotal = 0;
double datoPoPonderado = 0;

for(int i=0;i<cadenaArea.length;i++){
datoArea[i]=Double.parseDouble(cadenaArea[i]);
datoPo[i]=Double.parseDouble(cadenaPo[i]);
areaTotal+=datoArea[i];
}




for(int i=0;i<cadenaArea.length;i++){
datoPoUnitario[i]= (datoArea[i]/areaTotal)*datoPo[i];
datoPoPonderado+=datoPoUnitario[i];
}



}

public void calculaC(){
calculaPoPonderado();
double datoPd = Double.parseDouble(cadenaPd);



double divisionPdPo = datoPd/poPonderado;

System.out.println("LA DIVISION PD / PO " +divisionPdPo);


siempre da infinity... :huh:


yeah69

ufff creo que ya lo he visto, poPonderado NO ESTA INICIALIZADO, es variable global....y en el metodo anterior que lo calcula, antes tenia un return y hay lo igualaba...y lo hice void y se me ha pasado igualarlo.... voy a probar y espero que sea eso

yeah69

siiiiiiiiiiii era eso, jobar ya me estaba volviendo loco, digo pero como no puedo hacer una división??? que ha ocurrido??

es que los nombres de las variables son muy parecidos y me lie tontamente...
pero bueno, ya lo he corregido por suerte, gracias, la verdad que si no pongo el código y me paro a pensar.... oye cuando finalizao el método calculaC();  no igualo la variable global al resultado... no hubiera caido en el fallo, ya me puedo ir a dormir tranquilo  ;D ;D