在Java中从Long转换为Double

时间:2010-09-16 08:11:30

标签: java

有没有办法将Long数据类型转换为Doubledouble

例如,我需要将15552451L转换为double数据类型。

8 个答案:

答案 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);

(见Double.doubleToRawLongBits(double)

答案 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中的缩小转换

Conversion from type double to type long requires a nontrivial translation from a 64-bit floating-point value to the 64-bit integer representation. Depending on the actual run-time value, information may be lost.

例如以下程序将打印1而不是0

    long number = 499999999000000001L;
    double converted = (double) number;
    System.out.println( number - (long) converted);

答案 7 :(得分:-1)

我认为这对你有好处。

BigDecimal.valueOf([LONG_VALUE]).doubleValue()

该代码如何? :D