Так что я сейчас читаю книгу об изучении Java, и программа, изложенная в книге, дает мне некоторые проблемы. В частности, когда я запускаю программу для вычисления суммы долларов и изменений, которые у меня должны быть с 9.87, я получаю изменение от того, что получаю, как если бы я набрал 9.86. Однако, когда я печатаю 9.86, я получаю правильное количество изменений. Насколько я знаю, это происходит только с некоторыми суммами, которые заканчиваются на 0,87, например 8,87, хотя он работает на 6,87 штрафа. Это книга введение в java-программирование 8-е издание, и так как это была книга, написанная профессионалом, я смущен относительно того, что может быть ошибкой. Я попытался запустить его в cmd и eclipse, и оба, похоже, показывают ошибку.Ошибка программы Logic
Pastebin Ссылка:
Читайте о конверсиях с плавающей точкой в int. Простые усечения (округляются вниз). Вы хотите конвертировать «раунд к ближайшему». Т.е.: 'int ОсталосьAmount = (int) ((сумма + 0,005) * 100);' –