Un saludo para todos...
Tengo un problema con la siguiente clase
public class angulo {
public static void main(String args[]) {
final double angulo = 4.09;
double grado = 0, minuto = 0, segundo = 0;
grado = Math.floor(angulo);
minuto = Math.floor((angulo - grado) * 100);
segundo = (((angulo - grado) * 100) - minuto) * 100;
System.out.println("Grados: " + grado);
System.out.println("Minutos: " + minuto);
System.out.println("Segundos: " + segundo);
}
}
en la cual, al realizar la operacion (angulo - grado) * 100 obtengo 8.999999999999986 y no 9.0 que es lo que deseo por lo cual la variable minuto realmente se le asigna 8.0. Trate de cambiar la variable angulo por float pero al final obtengo 9.000015258789062, no entiendo realmente que es lo que sucede, por favor si ustedes me pueden colaborar e indicarme que estoy haciendo mal.
Tengo un problema con la siguiente clase
public class angulo {
public static void main(String args[]) {
final double angulo = 4.09;
double grado = 0, minuto = 0, segundo = 0;
grado = Math.floor(angulo);
minuto = Math.floor((angulo - grado) * 100);
segundo = (((angulo - grado) * 100) - minuto) * 100;
System.out.println("Grados: " + grado);
System.out.println("Minutos: " + minuto);
System.out.println("Segundos: " + segundo);
}
}
en la cual, al realizar la operacion (angulo - grado) * 100 obtengo 8.999999999999986 y no 9.0 que es lo que deseo por lo cual la variable minuto realmente se le asigna 8.0. Trate de cambiar la variable angulo por float pero al final obtengo 9.000015258789062, no entiendo realmente que es lo que sucede, por favor si ustedes me pueden colaborar e indicarme que estoy haciendo mal.