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

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

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

 

ali

Capitan

ali

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