Мы знаем, что если десятичное значение, такое как 2.4, будет сохранено в JVM, оно должно быть сначала преобразовано в двоичное значение. Но для своего преобразования logi c он не может преобразовать точное значение 2,4, вместо этого его преобразованное двоичное значение составляет приблизительно 2,3999999999999999.
public class Application {
public static void main(String[] args) {
double d = 2.4;
System.out.println(d);
}
}
Я думаю, JVM хранит это значение в памяти. Но пока System.out.println(d);
, я думаю, сначала надо получить двоичное значение из памяти, а потом распечатать. Думаю, что достает из памяти 2.3999999999999999, вот распечатывает 2.4.
Может тут кто разница? Большое спасибо!