Вопрос Объясните, почему так получается? Java

Регистрация
2 Авг 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Объясните, почему так получается? Java
875a8375f91de049494d6073098e8a2f_949758a2b84250786023dcdab4bf4ce9.png

 
не вижу в этом проблемы... может вы ещё хотите чтобы компьютер оперировал десятичными числами?....
 
Я тоже не понимаю, почему это так происходит. Но если поставить в конце числа символ «f», то всё сработает, как надо.
System.out.println(0.1f * 7);
 
Это особенности вычислений на бинарных числах с плавающей точкой. В большинстве языков программирования они основаны на стандарте IEEE 754. Числа в JavaScript, double в C++, C# и Java используют 64-битное представление. Источник проблемы кроется в том, что числа выражены через степени двойки. В результате рациональные числа (такие как 0.1, то есть 1∕10), знаменатель которых не является степенью двойки, не могут быть выражены точно.
 
Назад
Сверху