¿Hay alguna forma de convertir un Long
tipo de datos en Double
o double
?
Por ejemplo, necesito convertir 15552451L
a un double
tipo de datos.
java
type-conversion
Harry
fuente
fuente
Long.valueOf(15552451L).doubleValue()
si desea pasarLong
. Tenga en cuenta que esto es lo mismo, internamente, que el elenco de adouble
, excepto que está haciendo algo de auto / unboxing.new
) donde no se puede eludir.double d = 15552451L;
Casting simple?
double d = (double)15552451L;
fuente
15552451d
Como ya se mencionó, simplemente puede lanzar largo para duplicar. Pero tenga cuidado con la conversión de largo a doble porque de largo a doble es una conversión estrecha en java.
La conversión de tipo doble a tipo largo requiere una traducción no trivial de un valor de punto flotante de 64 bits a la representación entera de 64 bits. Dependiendo del valor real del tiempo de ejecución, es posible que se pierda información.
por ejemplo, el siguiente programa imprimirá 1, no 0
long number = 499999999000000001L; double converted = (double) number; System.out.println( number - (long) converted);
fuente
¿Está buscando la conversión binaria?
double result = Double.longBitsToDouble(15552451L);
Esto le dará
double
el mismo patrón de bits que ellong
literal.Los literales binarios o hexadecimales serán útiles aquí. Aquí hay unos ejemplos.
double nan = Double.longBitsToDouble(0xfff0000000000001L); double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L); double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(Ver Double.longBitsToDouble (long) )
También puedes recuperar la
long
espalda conlong bits = Double.doubleToRawLongBits(Double.NaN);
(Ver Double.doubleToRawLongBits (doble) )
fuente
long
adouble
(creo casting es una de las primeras cosas que se aprenden cuando se utiliza Java) ni tampoco aceptar ninguna respuesta. Tal vez quiera obtener unadouble
con el mismo patrón de bits que ellong
valor. Bueno, no lo se. Así que solo di la respuesta.Long i = 1000000; String s = i + ""; Double d = Double.parseDouble(s); Float f = Float.parseFloat(s);
De esta manera podemos convertir el tipo Long a Double o Float o Int sin ningún problema porque es fácil convertir el valor de la cadena en Double o Float o Int.
fuente
¿Qué quieres decir con un tipo de cita larga ?
Puedes lanzar un largo a un doble:
double d = (double) 15552451L;
fuente
Puedes probar algo como esto:
long x = somevalue; double y = Double.longBitsToDouble(x);
fuente
Creo que es bueno para ti.
BigDecimal.valueOf([LONG_VALUE]).doubleValue()
¿Qué tal este código? :RE
fuente