Чи є спосіб перетворити Longтип даних на Doubleабо double?
Наприклад, мені потрібно перетворити 15552451Lна doubleтип даних.
Відповіді:
Ви можете просто зробити:
double d = (double)15552451L;
Або ви можете отримати подвійний об'єкт Long як:
Long l = new Long(15552451L);
double d = l.doubleValue();
new), коли його неможливо уникнути.
double d = 15552451L;
Простий кастинг?
double d = (double)15552451L;
15552451d
Як вже зазначалося, ви можете просто кинути довго, щоб подвоїти. Але будьте обережні з довгим подвійним перетворенням, оскільки довге подвоєння - це звуження перетворення в Java.
наприклад, наступна програма надрукує 1, а не 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
Шукаєте двійкове перетворення?
double result = Double.longBitsToDouble(15552451L);
Це дасть вам той doubleсамий бітовий шаблон, що і longлітерал.
Тут знадобляться двійкові або шістнадцяткові букви. Ось кілька прикладів.
double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(Див. Double.longBitsToDouble (long) )
Ви також можете отримати longназад з
long bits = Double.doubleToRawLongBits(Double.NaN);
longв double(я думаю , лиття одна з перших речей , які ви дізнаєтеся при використанні Java) і він не приймає жодної відповіді. Можливо, він хоче отримати a doubleз тим самим бітовим шаблоном, що і longзначення. Ну, я не знаю. Тож я просто дав відповідь.
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
Таким чином ми можемо без проблем перетворити довгий тип на Double або Float або Int, оскільки перетворити значення рядка на Double або Float або Int легко.
Що ви маєте на увазі під типом довгого побачення ?
Ви можете кинути лог на дубль:
double d = (double) 15552451L;
Long.valueOf(15552451L).doubleValue()якщо ви хочете пройтиLong. Зауважте, що це внутрішньо те ж саме, що і акторський складdouble, за винятком того, що ви робите авто / розпакування.