Existe alguma maneira de converter um Longtipo de dados em Doubleou double?
Por exemplo, preciso converter 15552451Lpara um doubletipo de dados.
Existe alguma maneira de converter um Longtipo de dados em Doubleou double?
Por exemplo, preciso converter 15552451Lpara um doubletipo de dados.
Respostas:
Você poderia simplesmente fazer:
double d = (double)15552451L;
Ou você pode obter o dobro do objeto Long como:
Long l = new Long(15552451L);
double d = l.doubleValue();
new), onde não pode ser omitido.
double d = 15552451L;
Elenco simples?
double d = (double)15552451L;
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.
por exemplo, o programa a seguir imprimirá 1 não 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
Você está procurando a conversão binária?
double result = Double.longBitsToDouble(15552451L);
Isso lhe dará o doublemesmo padrão de bits do longliteral.
Literais binários ou hexadecimais serão úteis aqui. Aqui estão alguns exemplos.
double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(Consulte Double.longBitsToDouble (long) )
Você também pode pegar as longcostas com
long bits = Double.doubleToRawLongBits(Double.NaN);
(Consulte Double.doubleToRawLongBits (double) )
longpara double(acho casting é uma das primeiras coisas que você aprende ao usar Java) nem ele aceitar qualquer resposta. Talvez ele queira obter um doublecom o mesmo padrão de bits do longvalor. Bem, eu não sei. Então eu apenas dei a resposta.
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
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.
O que você quer dizer com tipo de data longa ?
Você pode lançar um longo para um duplo:
double d = (double) 15552451L;
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.