6
Đang sử dụng Math.round và tôi thấy rằng nó sẽ không trả lại bất kỳ giá trị nào lớn hơn sau đó (2^32/2) -1, nhưng tài liệu cho biết nó có thể/sẽ trả về giá trị dài, tức là 2^64 ... Có đoạn mã bên dưới.Giá trị trả về Math.round MAX
long bTmp = (long)Math.round(4294967296L);
System.out.println(bTmp);
System.out.println(Long.MAX_VALUE);
đó sản lượng:
2147483647
9223372036854775807
Tôi có thiếu cái gì?
Chỉ cần thêm một số thông tin về những gì đang thực hiện: http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls- 5.1.2 Theo mặc định có một mở rộng từ dài đến nổi. Để thực thi hành vi với gấp đôi, nó phải được đúc. –