Если дробь у тебя линейная, то представь ее целым числом, где столько бит, сколько их в целой и дробной частях всего, а запятую проставь потом. И в алгоритме делается проверка не на неравенство нулю, а на <=.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)