Можно ли преобразовать тип данных Long
в Double
или Double
?
Например, мне нужно преобразовать 15552451L
в тип данных Double
.
Можно ли преобразовать тип данных Long
в Double
или Double
?
Например, мне нужно преобразовать 15552451L
в тип данных Double
.
Вы можете просто сделать:
double d = (double)15552451L;
Или вы можете получить двойной объект Long, как:
Long l = new Long(15552451L);
double d = l.doubleValue();
Простое литье?
double d = (double)15552451L;
Вы ищете двоичное преобразование?
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 i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
Таким образом, мы можем преобразовать длинный тип в Double или Float или Int без каких-либо проблем, потому что легко преобразовать строковое значение в Double или Float или Int.
Что вы подразумеваете под типом long date?
Вы можете наложить длинный на двойной:
double d = (double) 15552451L;
Вы можете попробовать что-то вроде этого:
long x = somevalue;
double y = Double.longBitsToDouble(x);
Как уже упоминалось, вы можете просто разыграть long, чтобы удвоить. Но будьте осторожны с длинным в двойное преобразование, потому что длинное в двойное - это сужающееся преобразование в Java.
Преобразование из типа double в тип long требует нетривиального перевода из 64-битного значения с плавающей точкой в 64-битное целочисленное представление. В зависимости от фактического значения времени выполнения информация может быть потеряна.
Например, следующая программа будет печатать 1, а не 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
Я думаю, что это хорошо для вас.
BigDecimal.valueOf([LONG_VALUE]).doubleValue()
Как насчет этого кода? : D