Apakah ada cara untuk mengonversi Long
tipe data menjadi Double
atau double
?
Misalnya, saya perlu mengonversi 15552451L
ke double
tipe data.
java
type-conversion
Harry
sumber
sumber
Long.valueOf(15552451L).doubleValue()
jika Anda ingin melaluiLong
. Perhatikan bahwa ini sama, secara internal, seperti cast dari adouble
, kecuali Anda melakukan beberapa auto / unboxing.new
) yang tidak dapat diabaikan.double d = 15552451L;
Casting sederhana?
double d = (double)15552451L;
sumber
15552451d
Seperti yang telah disebutkan, Anda cukup mengubah panjang menjadi dua kali lipat. Tapi hati - hati dengan konversi panjang ke ganda karena panjang menjadi ganda adalah konversi yang menyempit di java.
Konversi dari tipe ganda ke tipe panjang membutuhkan terjemahan nontrivial dari nilai floating-point 64-bit ke representasi integer 64-bit. Bergantung pada nilai run-time yang sebenarnya, informasi mungkin hilang.
misalnya program berikut akan mencetak 1 bukan 0
long number = 499999999000000001L; double converted = (double) number; System.out.println( number - (long) converted);
sumber
Apakah Anda mencari konversi biner?
double result = Double.longBitsToDouble(15552451L);
Ini akan memberi Anda
double
pola bit yang sama denganlong
literal.Literal biner atau heksadesimal akan berguna, di sini. Berikut ini beberapa contohnya.
double nan = Double.longBitsToDouble(0xfff0000000000001L); double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L); double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(Lihat Double.longBitsToDouble (long) )
Anda juga bisa mendapatkan bagian
long
belakangnyalong bits = Double.doubleToRawLongBits(Double.NaN);
(Lihat Double.doubleToRawLongBits (double) )
sumber
long
kedouble
(saya pikir casting salah satu hal pertama yang Anda pelajari ketika menggunakan Java) ia juga tidak menerima jawaban apapun. Mungkin dia ingin mendapatkandouble
pola bit yang sama denganlong
nilainya. Saya tidak tahu. Jadi saya hanya memberikan jawabannya.Long i = 1000000; String s = i + ""; Double d = Double.parseDouble(s); Float f = Float.parseFloat(s);
Dengan cara ini kita dapat mengubah tipe Long menjadi Double atau Float atau Int tanpa masalah karena mudah untuk mengubah nilai string menjadi Double atau Float atau Int.
sumber
Apa yang Anda maksud dengan tipe tanggal panjang ?
Anda dapat mengubah panjang menjadi ganda:
double d = (double) 15552451L;
sumber
Anda dapat mencoba sesuatu seperti ini:
long x = somevalue; double y = Double.longBitsToDouble(x);
sumber
Saya pikir itu baik untuk Anda.
BigDecimal.valueOf([LONG_VALUE]).doubleValue()
Bagaimana dengan kode ini? : D
sumber