Existe alguma maneira de converter um Long
tipo de dados em Double
ou double
?
Por exemplo, preciso converter 15552451L
para um double
tipo de dados.
java
type-conversion
atormentar
fonte
fonte
Long.valueOf(15552451L).doubleValue()
se você quiser ir viaLong
. Observe que isso é o mesmo, internamente, que o elenco de adouble
, exceto que você está fazendo algum auto / unboxing.new
), onde não pode ser omitido.double d = 15552451L;
Elenco simples?
fonte
15552451d
Como já foi mencionado, você pode simplesmente lançar long para dobrar. Mas tome cuidado com a conversão long to double porque long to double é uma conversão de estreitamento em java.
A conversão do tipo double para o tipo long requer uma tradução não trivial de um valor de ponto flutuante de 64 bits para a representação inteira de 64 bits. Dependendo do valor real do tempo de execução, as informações podem ser perdidas.
por exemplo, o programa a seguir imprimirá 1 não 0
fonte
Você está procurando a conversão binária?
Isso lhe dará o
double
mesmo padrão de bits dolong
literal.Literais binários ou hexadecimais serão úteis aqui. Aqui estão alguns exemplos.
(Consulte Double.longBitsToDouble (long) )
Você também pode pegar as
long
costas com(Consulte Double.doubleToRawLongBits (double) )
fonte
long
paradouble
(acho casting é uma das primeiras coisas que você aprende ao usar Java) nem ele aceitar qualquer resposta. Talvez ele queira obter umdouble
com o mesmo padrão de bits dolong
valor. Bem, eu não sei. Então eu apenas dei a resposta.Desta forma, podemos converter o tipo Long em Double ou Float ou Int sem nenhum problema, porque é fácil converter o valor da string em Double ou Float ou Int.
fonte
O que você quer dizer com tipo de data longa ?
Você pode lançar um longo para um duplo:
fonte
Você pode tentar algo assim:
fonte
Eu acho que é bom para você.
BigDecimal.valueOf([LONG_VALUE]).doubleValue()
Que tal este código? : D
fonte