Tôi đang nâng cấp từ JDK6 to JDK7. Các mã sau đây chứng minh cho thấy một sự thay đổi nhỏ trong Double.toString()
Java7 Double.toString() trả về 0,005/java6 là 0,0050
public class StringDemo
{
public static void main(String[] args)
{
System.out.println(Double.toString(.0005));
System.out.println(Double.toString(.005)); //different string
System.out.println(Double.toString(.05));
System.out.println(Double.toString(.5));
}
}
JRE6
5.0E-4
0.0050
0.05
0.5
JRE7
Tôi đang tìm kiếm bất kỳ tài liệu liên quan đến sự thay đổi trên. Trang tương thích không bao gồm nó.
5.0E-4
0.005 //changed.
0.05
0.5
Kết quả được lưu trong nhiều tệp tham chiếu và so sánh bằng so sánh chuỗi - tôi cần sửa so sánh nhưng tò mò muốn biết thêm chi tiết về thay đổi này. Câu trả lời có thẩm quyền về lý do tại sao thay đổi này sẽ nhận được tiền thưởng.
Một phao phân tích lỗi trong Java có thể gây ra trình biên dịch để đi trong một vòng lặp vô hạn là hơi thú vị hơn, mặc dù. http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ – devnull