"Математическое понятие арифметики по модулю работает и для значений с плавающей запятой, и это одна из первых проблем, которую Дональд Кнут обсуждает в своей классической книге" Искусство компьютерного программирования "(том I). То есть когда-то это были базовые знания.«
Оператор модуля с плавающей запятой определяется следующим образом:
m = num - iquot*den ; where iquot = int( num/den )
Как указано, запрет оператора% на числа с плавающей запятой, похоже, связан со стандартами.CRTL предоставляет «fmod» и, как правило, «остаток» для выполнения% на числах fp.Разница между этими двумя заключается в том, как они обрабатывают промежуточное округление «iquot».
«остаток» использует округление до ближайшего, а «fmod» использует простое усечение.
Если вы пишетеваши собственные числовые классы C ++, ничто не мешает вам изменить наследие без операции, включая перегруженный оператор%.
С наилучшими пожеланиями