Действительно, 0,04 входит в 1089,84 без остатка.Однако это не те вычисления, которые вы просите выполнить за вас.
Ни 1089.84, ни 0.04 не могут быть представлены в виде числа с плавающей запятой.Таким образом, каждый из литералов двойной точности округляется до ближайшего представимого значения.На самом деле вы вычисляете:
1089.839999999999918145476840436458587646484375 % 0.040000000000000000832667268468867405317723751068115234375
, что в точности равно
0.039999999999895459457111002166129765100777149200439453125
, когда вы печатаете результат, он округляется до нескольких десятичных знаков для отображения, и вы видите0.04.