En Java, el signo igual doble se puede usar para comparar el tamaño de los datos de tipo int , pero el signo igual doble no se puede usar para comparar el tamaño del tipo doble . Si se usa, el resultado siempre será desigual, incluso si la precisión de los dos es el mismo. . A continuación se describen dos métodos para comparar datos dobles por igualdad.
El primer método: convertir a una cadena
Si la precisión de la cadena de los dos datos dobles que se van a comparar es igual, puede convertir los datos en una cadena y usar el método de igualdad de la cadena para comparar indirectamente si los dos datos dobles son iguales.
Nota: Este método solo es adecuado para comparar datos con la misma precisión, y solo se usa para comparar si son iguales y no se puede usar para juzgar el tamaño.
Float.toString(453.2348f).equals(Float.toString(0.342f))
Double.toString(0.8456d).equals(Float.toString(0.242f))
El segundo método: utilice el método DOUBLE.DOUBLETOLONGBITS() proporcionado por SUN
Este método puede convertir el doble en datos largos , de modo que el doble pueda juzgar si el tamaño y la igualdad son iguales según el método de largo (<, >, ==).
Double.doubleToLongBits(0.01) == Double.doubleToLongBits(0.01)
Double.doubleToLongBits(0.02) > Double.doubleToLongBits(0.01)
Double.doubleToLongBits(0.02) < Double.doubleToLongBits(0.01)
El tercer método:
Para el tipo doble, como doble d1 = 0.0000001, doble d2 = 0d Al juzgar si dos datos d1 y d2 son iguales, generalmente no se usa directamente
si(d1==d2)
cuarto camino
double a = 0.001;
double b = 0.0011;
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
data1.compareTo(data2)
非整型数,运算由于精度问题,可能会有误差,建议使用BigDecimal类型!
--------------------------------------------No hay texto debajo--------- - ------------------------------------------------- -
Nota: Solo para estudio, registre preguntas y referencias, ¡anímese unos a otros!