有没有办法将Long
数据类型转换为Double
或double
?
例如,我需要将15552451L
转换为double
数据类型。
答案 0 :(得分:118)
你可以这样做:
double d = (double)15552451L;
或者你可以从Long对象获得两倍:
Long l = new Long(15552451L);
double d = l.doubleValue();
答案 1 :(得分:19)
简单铸造?
double d = (double)15552451L;
答案 2 :(得分:3)
您在寻找二进制转换吗?
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);
答案 3 :(得分:3)
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
这样我们可以将Long类型转换为Double或Float或Int而不会有任何问题,因为它很容易将字符串值转换为Double或Float或Int。
答案 4 :(得分:1)
长日期类型是什么意思?
你可以把长期投入双倍:
double d = (double) 15552451L;
答案 5 :(得分:1)
您可以尝试这样的事情:
long x = somevalue;
double y = Double.longBitsToDouble(x);
答案 6 :(得分:1)
如前所述,您可以简单地将long转换为double。但是请小心长转换,因为长转换是Java中的缩小转换。
例如以下程序将打印1而不是0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
答案 7 :(得分:-1)
我认为这对你有好处。
BigDecimal.valueOf([LONG_VALUE]).doubleValue()
该代码如何? :D