Problema dividiendo, por favor ayuda!

novisima
08 de Mayo del 2008
Hola,
necesito ayuda con un método de java, que no sé qué le pasa... Básicamente el problema es que no puedo hacer una división...

Os pego:

public void hallarLimites()
{
int i=0;
int aux=0;
double p=0;

for(i=0;i<lista.size();i++)
{
aux=lista.get(i).getApariciones();
p=(aux/entrada.length());
lista.get(i).setProbabilidad(p);
System.out.println("Proba :"+p);
}
}

El problema es que p (que es un double) vale o 1.0 o 0.0 no toma ningún otro valor... He intentado hacer un
System.out.println(p=(2/3)); y también sale 0.0

Un float (o double xq he probado con los dos) debería aceptar una división, no???

Por favor, ayudaaaaaaaaaa, llevo 1hora dándole vueltas y nada...

gracias!


pedrohv012005
08 de Mayo del 2008
en java, cuando divides un número por otro, ese otro define cómo será la división.

a/b devuelve la división entera si b es entero, es decir,
1/2 = 0
1/2.0 = 0.5
para que tu programa funcione como quieres debes escribir:
p=(aux/(float)entrada.length());