Есть ли способ преобразовать 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
Как уже упоминалось, вы можете просто забросить лонг на удвоение. Но будьте осторожны с преобразованием long в double, потому что long to double - это сужающее преобразование в 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 bits = Double.doubleToRawLongBits(Double.NaN);
longв double(я думаю , литье одна из первых вещей , которые вы узнаете при использовании Java) и он не принимает никакого ответа. Может быть, он хочет получить doubleс тем же битовым шаблоном, что и longзначение. Ну не знаю. Так что я просто дал ответ.
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
Таким образом, мы можем без проблем преобразовать тип Long в Double, Float или Int, потому что строковое значение легко преобразовать в Double, Float или Int.
Что вы имеете в виду под длинным типом свидания ?
Вы можете забросить лонг на дубль:
double d = (double) 15552451L;
Long.valueOf(15552451L).doubleValue()если вы хотите пройти черезLong. Обратите внимание, что это внутренне то же самое, что и приведение из adouble, за исключением того, что вы выполняете автоматическую / распаковку.