Có cách nào để chuyển đổi một Longkiểu dữ liệu sang Doublehoặc doublekhông?
Ví dụ, tôi cần chuyển đổi 15552451Lsang một doublekiểu dữ liệu.
Câu trả lời:
Bạn chỉ có thể làm:
double d = (double)15552451L;
Hoặc bạn có thể nhận được gấp đôi từ đối tượng Long như:
Long l = new Long(15552451L);
double d = l.doubleValue();
new) nơi nó không thể được giải quyết.
double d = 15552451L;
Đúc đơn giản?
double d = (double)15552451L;
15552451d
Như đã đề cập, bạn có thể chỉ cần truyền dài để tăng gấp đôi. Nhưng hãy cẩn thận với chuyển đổi dài thành kép vì dài thành gấp đôi là chuyển đổi thu hẹp trong java.
Ví dụ: chương trình sau sẽ in 1 chứ không phải 0
long number = 499999999000000001L;
double converted = (double) number;
System.out.println( number - (long) converted);
Bạn đang tìm kiếm chuyển đổi nhị phân?
double result = Double.longBitsToDouble(15552451L);
Điều này sẽ cung cấp cho bạn doublevới cùng một mẫu bit như longnghĩa đen.
Các ký tự nhị phân hoặc thập lục phân sẽ có ích tại đây. Đây là một số ví dụ.
double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);
(Xem Double.longBitsToDouble (dài) )
Bạn cũng có thể lấy longlại bằng
long bits = Double.doubleToRawLongBits(Double.NaN);
longdoubledoublelong
Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);
Bằng cách này, chúng ta có thể chuyển đổi kiểu Long thành Double hoặc Float hoặc Int mà không gặp bất kỳ vấn đề gì vì rất dễ dàng chuyển đổi giá trị chuỗi thành Double hoặc Float hoặc Int.
Ý bạn là gì về kiểu ngày dài ?
Bạn có thể truyền từ dài thành gấp đôi:
double d = (double) 15552451L;
Long.valueOf(15552451L).doubleValue()nếu bạn muốn đi quaLong. Lưu ý rằng điều này giống nhau, nội bộ, giống như truyền từ adouble, ngoại trừ việc bạn đang thực hiện một số thao tác tự động / mở hộp.