Czy istnieje jakiś sposób przekonwertowania danych typu Long
na Double
lub double
? Na przykład, muszę przekonwertować 15552451L
na typ danych double
.Konwersja z długiej na podwójną w języku Java
Odpowiedz
Prosty odlew?
double d = (double)15552451L;
Co masz na myśli przez długo data typu?
Można rzucić długo podwójne:
double d = (double) 15552451L;
Sądzę, że długa data byłaby podobna do "wtorek, 19 września 24893243092333". –
Można po prostu zrobić:
double d = (double)15552451L;
Albo można dostać podwójne z Long obiektu jako:
Long l = new Long(15552451L);
double d = l.doubleValue();
dlaczego -1? proszę wyjaśnić – YoK
Nie potrzebujesz żadnego parsowania ciągów: 'Long.valueOf (15552451L) .doubleValue()' jeśli chcesz przejść przez 'Long'. Zauważ, że to jest to samo, wewnętrznie, jak rzutowanie z "podwójnego", z wyjątkiem tego, że robisz trochę auto/unboxingu. –
@jjk to moja odpowiedź niepoprawna? czy to nie zadziała? – YoK
Czy szukasz konwersji binarnej?
double result = Double.longBitsToDouble(15552451L);
To daje double
z tym samym bitów jako long
dosłowne.
Literały binarne lub heksadecymalne przydadzą się tutaj. 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żna również uzyskać long
z powrotem
long bits = Double.doubleToRawLongBits(Double.NaN);
(Zobacz Double.doubleToRawLongBits(double))
To robi coś innego, zobacz jdoc (http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html#longBitsToDouble(long)) –
Tak. Ale nie sprecyzował * jak * chce przekonwertować 'long' na' double' (myślę, że casting jest jedną z pierwszych rzeczy, których uczysz się przy użyciu Javy), ani nie zaakceptował żadnej odpowiedzi. Może on chce uzyskać 'double' z tym samym wzorem bitowym co wartość' long'. Cóż, nie wiem. Po prostu podałem odpowiedź. – pvorb
Dodałem dodatkowe informacje, więc odpowiedź jest bardziej cenna. – pvorb
Można spróbować czegoś takiego:
long x = somevalue;
double y = Double.longBitsToDouble(x);
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
W ten sposób możemy konwertować typ Long na Double lub Float lub Int bez problemu, ponieważ łatwo jest przekonwertować wartość ciągu na Double lub Float lub Int.
Zawsze lepiej jest dodać wyjaśnienie do kodu, który publikujesz jako odpowiedź, aby pomóc odwiedzającym zrozumieć, dlaczego jest to dobra odpowiedź. – abarisone
Wykonano @abarisone –
- 1. Konwersja długiej na podstawową 36 w scala
- 2. C++ Konwersja na podwójną konwersję tracąc precyzję?
- 3. Konwersja długiej [64] na bajt [512] w Javie?
- 4. Konwersja z wersji podwójnej na zmienną w języku Java
- 5. Konwersja bajtów i znaków w języku Java
- 6. Konwersja Float na podwójną - Najlepsza asercja w teście jednostkowym?
- 7. Konwersja tablicy znaków na listę w języku Java
- 8. Konwersja łańcucha znaków na tablicę "Character" w języku Java
- 9. Konwersja z bajtu na int w java
- 10. Konwersja Java na iOS
- 11. Konwertuj bajt na podwójną precyzję w PostgreSQL
- 12. Java: konwersja długa na Datownik
- 13. Konwersja Java na okresy Scala
- 14. Konwersja JavaScript na język Java
- 15. Konwersja Java/Android na kolor
- 16. Konwersja strumienia int na char w java
- 17. Java Konwersja na długo w walucie
- 18. Konwersja String na int tablicy w java
- 19. Matlab: Konwersja podwójną tablicę wektor do macierzy komórkowej strun
- 20. Przechowywanie i pobieranie niepodpisanej długiej wartości długiej do/z NSString
- 21. Uruchamianie długiej operacji w javascript?
- 22. jak wydrukować podwójną podwójną tablicę z linii poleceń (unix)
- 23. Jak analizować negatywnie w języku Java w języku Java
- 24. Przechodząc podwójną wartość aż do innej klasy w Android Java
- 25. Czytanie heksadecymatu dla pythonu z podwójną precyzją:
- 26. Inicjowanie obiektu podwójnego z prymitywną wartością podwójną
- 27. Konwertuj z długiej na dwie wartości int i na odwrót
- 28. Konwersja dwuwymiarowej tablicy na jednowymiarowy w języku C#?
- 29. Konwersja Java na liczbę całkowitą do szesnastkowej
- 30. Konwersja programu konsoli Java na aplikację Webapp
A jeśli jest to dosłowne '15552451d' –
, nawet myślę, że rzutowanie nie jest konieczne, można utworzyć podwójne z długą wartością taką jak ta:" double d = 1234L; ". – crusam
Prawdopodobnie nie - ale pytanie jest wystarczająco podstawowe, aby uzasadnić wprowadzenie koncepcji takiej jak casting. –