Apakah ada cara untuk mengonversi Longtipe data menjadi Doubleatau double?
Misalnya, saya perlu mengonversi 15552451Lke doubletipe data.
Jawaban:
Anda cukup melakukan:
double d = (double)15552451L;
Atau Anda bisa mendapatkan dua kali lipat dari objek Long sebagai:
Long l = new Long(15552451L);
double d = l.doubleValue();
new) yang tidak dapat diabaikan.
double d = 15552451L;
Casting sederhana?
double d = (double)15552451L;
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.
misalnya program berikut akan mencetak 1 bukan 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
Apakah Anda mencari konversi biner?
double result = Double.longBitsToDouble(15552451L);
Ini akan memberi Anda doublepola bit yang sama dengan longliteral.
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 longbelakangnya
long bits = Double.doubleToRawLongBits(Double.NaN);
(Lihat Double.doubleToRawLongBits (double) )
longke double(saya pikir casting salah satu hal pertama yang Anda pelajari ketika menggunakan Java) ia juga tidak menerima jawaban apapun. Mungkin dia ingin mendapatkan doublepola bit yang sama dengan longnilainya. 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.
Apa yang Anda maksud dengan tipe tanggal panjang ?
Anda dapat mengubah panjang menjadi ganda:
double d = (double) 15552451L;
Long.valueOf(15552451L).doubleValue()jika Anda ingin melaluiLong. Perhatikan bahwa ini sama, secara internal, seperti cast dari adouble, kecuali Anda melakukan beberapa auto / unboxing.