Можно ли каким-либо образом преобразовать тип данных Long
в Double
или double
?Преобразование из Long в Double в Java
Например, мне нужно преобразовать 15552451L
в тип данных double
.
Можно ли каким-либо образом преобразовать тип данных Long
в Double
или double
?Преобразование из Long в Double в Java
Например, мне нужно преобразовать 15552451L
в тип данных double
.
Простой литье?
double d = (double)15552451L;
Что вы имеете в виду по долго дате типа?
Вы можете бросить долго двойной:
double d = (double) 15552451L;
Я предполагаю, что долгая дата будет чем-то вроде «Вторник, 19 сентября 24893243092333». –
Вы могли бы просто сделать:
double d = (double)15552451L;
Или вы могли бы получить двойной от Long объекта как:
Long l = new Long(15552451L);
double d = l.doubleValue();
почему -1? объясните, пожалуйста, – YoK
Не нужно никакого синтаксического анализа строк: 'Long.valueOf (15552451L) .doubleValue()', если вы хотите пройти через 'Long'. Обратите внимание, что это одно и то же, внутренне, как приведение из 'double', за исключением того, что вы выполняете автоматическое/unboxing. –
@jjk - мой ответ неправильный? это не сработает? – YoK
ли вы ищете двоичное преобразование?
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);
Это делает что-то еще, см. Jdoc (http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html#longBitsToDouble(long)) –
Да. Но он не указывал *, как он хочет конвертировать 'long' в' double' (я думаю, что кастинг - это одна из первых вещей, которую вы узнаете при использовании Java), и он не принял никакого ответа. Возможно, он хочет получить «double» с тем же битовым шаблоном, что и значение «long». Ну, я не знаю. Поэтому я просто дал ответ. – pvorb
Я добавил дополнительную информацию, поэтому ответ более ценен. – pvorb
Вы можете попробовать что-то вроде этого:
long x = somevalue;
double y = Double.longBitsToDouble(x);
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
Таким образом, мы можем преобразовать длинный тип в Double или Float или Int без каких-либо проблем, потому что легко преобразовать строковое значение в Double или Float или Int.
Всегда лучше добавлять объяснения к коду, который вы публикуете в качестве ответа, так что это поможет посетителям понять, почему это хороший ответ. – abarisone
Done @abarisone –
И если это буквально просто '15552451d' –
Я даже думаю, что актер не нужен, вы можете создать двойной с длинным значением, подобным этому:« double d = 1234L; ». – crusam
Наверное, нет - но вопрос достаточно прост, чтобы гарантировать введение концепции, подобной кастингу. –