java - valores - El valor doble devuelve 0
recorrer tableview javafx (3)
Aquí hay un ejemplo:
Double d = (1/3);
System.out.println(d);
Esto devuelve 0, no 0.33333 ... como debería.
¿Alguien sabe?
Esto se debe a que 1
y 3
se tratan como integers
cuando no se especifica lo contrario, por lo que 1/3
evalúa como el integer
0
que luego se convierte en el double
0
. Para solucionarlo, intente (1.0/3)
o tal vez 1D/3
para indicar explícitamente que está tratando con valores dobles.
Usa double y no Double a menos que necesites usar estos valores en el sentido del objeto. Tenga en cuenta los conceptos de Autoboxing
Si tiene int
que quiere dividir usando división de punto flotante, tendrá que convertir el int
en un double
:
double d = (double)intValue1 / (double)intValue2
(En realidad, solo el lanzamiento de intValue2
debería ser suficiente para hacer que intValue1
se double
automáticamente, creo).