【发布时间】:2011-04-13 02:17:21
【问题描述】:
有没有办法将Long 数据类型转换为Double 或double?
例如,我需要将15552451L 转换为double 数据类型。
【问题讨论】:
标签: java type-conversion
有没有办法将Long 数据类型转换为Double 或double?
例如,我需要将15552451L 转换为double 数据类型。
【问题讨论】:
标签: java type-conversion
简单的铸造?
double d = (double)15552451L;
【讨论】:
15552451d
长日期类型是什么意思?
您可以将 long 转换为 double:
double d = (double) 15552451L;
【讨论】:
你可以这样做:
double d = (double)15552451L;
或者你可以从 Long 对象中得到 double :
Long l = new Long(15552451L);
double d = l.doubleValue();
【讨论】:
Long.valueOf(15552451L).doubleValue(),如果你想通过Long。请注意,在内部,这与来自 double 的演员表相同,只是您正在进行一些自动/拆箱。
new)。
double d = 15552451L;
您在寻找二进制转换吗?
double result = Double.longBitsToDouble(15552451L);
这将为您提供与提供的long 具有相同位模式的double。
在这里,二进制或十六进制文字会派上用场。以下是一些示例。
double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double negativeInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(见Double.longBitsToDouble(long))
您也可以通过以下方式找回long
long bits = Double.doubleToRawLongBits(Double.NaN);
【讨论】:
long 转换为double(我认为强制转换是您在使用Java 时学习的第一件事),也没有接受任何答案。也许他想得到一个与long 值具有相同位模式的double。嗯,我不知道。所以我只是给出了答案。
你可以试试这样的:
long x = somevalue;
double y = Double.longBitsToDouble(x);
【讨论】:
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
这样我们可以毫无问题地将 Long 类型转换为 Double 或 Float 或 Int ,因为将字符串值转换为 Double 或 Float 或 Int 很容易。
【讨论】:
如前所述,您可以简单地将 long 转换为 double。但是对于 long 到 double 的转换要小心,因为 long 到 double 是 java 中的 窄化转换。
例如以下程序将打印 1 而不是 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
【讨论】:
我认为这对你有好处。
BigDecimal.valueOf([LONG_VALUE]).doubleValue()
这段代码怎么样? :D
【讨论】: