Czy istnieje sposób na przekonwertowanie Longtypu danych na Doublelub double?
Na przykład muszę przekonwertować 15552451Lna doubletyp danych.
Odpowiedzi:
Możesz po prostu zrobić:
double d = (double)15552451L;
Lub możesz uzyskać podwójne z obiektu Long jako:
Long l = new Long(15552451L);
double d = l.doubleValue();
new), w których nie można go wyeliminować.
double d = 15552451L;
Proste odlewanie?
double d = (double)15552451L;
15552451d
Jak już wspomniano, możesz po prostu rzucać długo, aby podwoić. Ale bądź ostrożny z długo podwójnej konwersji, ponieważ długo podwójne jest konwersja zwężenie w Javie.
np. następujący program wypisze 1 a nie 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
Szukasz konwersji binarnej?
double result = Double.longBitsToDouble(15552451L);
To da ci ten doublesam wzór bitowy co longdosłowny.
Przydadzą się tutaj literały binarne lub szesnastkowe. Oto kilka przykładów.
double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(Zobacz Double.longBitsToDouble (long) )
Możesz także dostać z longpowrotem za pomocą
long bits = Double.doubleToRawLongBits(Double.NaN);
(Zobacz Double.doubleToRawLongBits (double) )
longdo double(chyba odlew jest jedną z pierwszych rzeczy, które uczą się przy użyciu języka Java) ani nie ponosi żadnej odpowiedzi. Może chce otrzymać doubletaki sam wzór bitów jak longwartość. No nie wiem. Więc po prostu udzieliłem odpowiedzi.
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
W ten sposób możemy bez problemu przekonwertować typ Long na Double, Float lub Int, ponieważ łatwo jest przekonwertować wartość ciągu na Double lub Float lub Int.
Co masz na myśli przez długi typ daty ?
Możesz rzucić długie na podwójne:
double d = (double) 15552451L;
Long.valueOf(15552451L).doubleValue()jeśli chcesz przejść przezLong. Zauważ, że wewnętrznie jest to to samo, co rzut z adouble, z wyjątkiem tego, że wykonujesz pewne automatyczne / rozpakowywanie.