Comparar dos valores double en Java.
Este es un código Java que debería probar si los tres primeros dígitos después del punto decimal son idénticos. Y necesito escribir este programa sin un método principal.
public class areEqualByThreeDecimalPlaces {
public static boolean areEqualByThreeDecimalPlaces(double d<em>1, double d</em>2) {
double value<em>1 = Math.round(1000*d</em>1);
double value<em>2 = Math.round(1000*d</em>2);
if (value_1 == value_2) {
return true;
} else return false;
}
}
Entrada:
(-3.1756, -3.175)
Salida esperada:
true
Salida recibida:
false
Al usar Math.round
, se redondea el valor de -3.1756
a -3.176
. Pero quiero verificar si los tres dígitos después del punto decimal son similares.
¿Cómo corrijo mi código?
davy.ai
Para comprobar si los tres primeros dígitos después del punto decimal son idénticos, podemos hacer lo siguiente:
Aquí está el código corregido:
Ahora, si ingresamos
(-3.1756, -3.175)
en el código corregido, se obtendrá la salida esperada detrue
.