YoK*_*YoK 122
你可以这样做:
double d = (double)15552451L;
Run Code Online (Sandbox Code Playgroud)
或者你可以从Long对象得到两倍:
Long l = new Long(15552451L);
double d = l.doubleValue();
Run Code Online (Sandbox Code Playgroud)
Jim*_*som 19
简单的铸造?
double d = (double)15552451L;
Run Code Online (Sandbox Code Playgroud)
如前所述,您可以简单地将 long 转换为 double。但是要小心long 到 double 的转换,因为 long 到 double 是java 中的缩小转换。
从 double 类型到 long 类型的转换需要从 64 位浮点值到 64 位整数表示的非平凡转换。根据实际运行时值,信息可能会丢失。
例如以下程序将打印 1 而不是 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
Run Code Online (Sandbox Code Playgroud)
您在寻找二进制转换吗?
double result = Double.longBitsToDouble(15552451L);
Run Code Online (Sandbox Code Playgroud)
这将为您double提供与long文字相同的位模式。
二进制或十六进制文字在这里会派上用场。这里有些例子。
double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
Run Code Online (Sandbox Code Playgroud)
(见Double.longBitsToDouble(long))
你也可以得到long背面
long bits = Double.doubleToRawLongBits(Double.NaN);
Run Code Online (Sandbox Code Playgroud)
(见Double.doubleToRawLongBits(double))
| 归档时间: |
|
| 查看次数: |
179139 次 |
| 最近记录: |