Я создаю калькулятор RPN для школьного проекта. У меня возникают проблемы с оператором модуля. Поскольку мы используем двойной тип данных, модуль не будет работать с числами с плавающей запятой. Например, 0.5% 0.3 должно возвращать 0.2, но я получаю деление на нулевое исключение.Как использовать модуль для float/double?
В инструкции говорится использовать fmod(). Я везде искал fmod(), включая javadocs, но я не могу его найти. Я начинаю думать, что это метод, который мне нужно будет создать?
Редактировать: hmm, странно. Я снова включил эти цифры, и кажется, что он работает нормально ... но на всякий случай. Нужно ли отслеживать использование оператора mod в Java при использовании плавающих типов? Я знаю, что нечто подобное не может быть сделано на C++ (я думаю).
но '1.0% 0.1' возвращает ...' 0.09999999999999995', в результате ошибки округления. Любая идея, как исправить это (предположительно с значениями эпсилон?) – Groostav
Ошибки округления всегда будут выполняться в вычислениях с плавающей запятой. Либо возьмите значение, как оно указано, либо округлите его до ближайшего необходимого значения. – Anarchofascist
'String.format ("%. 8f ", 1.0% 0.1)' возвращает '0.10000000' – Anarchofascist