Есть ли способ преобразовать Long
тип данных вDouble
или double
?
Например, мне нужно преобразовать 15552451L
в double
тип данных.
java
type-conversion
Гарри
источник
источник
Long.valueOf(15552451L).doubleValue()
если вы хотите пройти черезLong
. Обратите внимание, что это внутренне то же самое, что и приведение из adouble
, за исключением того, что вы выполняете автоматическую / распаковку.new
), когда его невозможно избежать.double d = 15552451L;
Простой кастинг?
double d = (double)15552451L;
источник
15552451d
Как уже упоминалось, вы можете просто забросить лонг на удвоение. Но будьте осторожны с преобразованием long в double, потому что long to double - это сужающее преобразование в java.
Преобразование типа double в тип long требует нетривиального преобразования из 64-битного значения с плавающей запятой в 64-битное целочисленное представление. В зависимости от фактического значения времени выполнения информация может быть потеряна.
например, следующая программа напечатает 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);
(См. Double.doubleToRawLongBits (double) )
источник
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 x = somevalue; double y = Double.longBitsToDouble(x);
источник
Я думаю, это хорошо для тебя.
BigDecimal.valueOf([LONG_VALUE]).doubleValue()
Как насчет этого кода? : D
источник