double 转 long
时间: 2023-08-02 17:17:47 浏览: 508
将 double 类型的值转换为 long 类型的值,可以使用强制类型转换将其转换为 long 类型,例如:
```java
double d = 3.14;
long l = (long) d;
```
这将会将 `d` 的值转换为 `long` 类型,并将其赋值给 `l`。需要注意的是,这种类型转换可能会导致精度损失或溢出问题,需要谨慎使用。
相关问题
double 转long
在Java中,将`double`类型的数据转换为`long`类型,通常需要进行精度损失,因为`double`的范围比`long`大得多,可能会导致小数部分被截断。可以使用`Math.round()`、`Math.floor()`或`Math.ceil()`方法配合`Long.parseLong()`或者`Long.valueOf()`来进行转换。但是,这并不总是可靠的,因为结果取决于`double`的小数部分。
例如,如果你想尽可能地保留原`double`的整数值,可以尝试使用`Math.floor()`和`Long.toLong()`组合:
```java
double d = 3.14159; // 示例double值
long l = (long) Math.floor(d); // 通过向下取整,保留整数部分
long longValue = Long.toLongString(l); // 再转换回字符串形式,避免数据丢失
System.out.println("转换后的long: " + longValue);
```
请注意,这种方法仍然不是完美的,特别是对于非常大的`double`数值,可能会遇到溢出的问题。
double转long
要将double类型的值转换为long类型的值,可以使用Double类的longValue()方法。首先,将double值封装到Double对象中,然后调用longValue()方法将其转换为long类型的值。这个过程可以通过以下代码实现:
Double d = new Double(doubleValue);
long l = d.longValue();
其中,doubleValue是要转换的double值。
另外,如果你使用的是JDK 1.4版本,可以使用以下代码进行转换:
Long l = new Long(new Double(doubleValue).longValue());
而如果你使用的是JDK 1.5或更高版本,可以直接使用以下代码进行转换:
Long l = new Double(doubleValue).longValue();
这样就可以将double类型的值转换为long类型的值了。
阅读全文