Насколько я понимаю, проблема в том, что остаток выдается с плюс-минус единицей?
Это из-за проблем с точностью в числах с плавающей точкой: например, число 7.9 может храниться в памяти компьютера как 7.9000000..., а может как 7.8999999
Можно вместо простого присвоения округлить до ближайшего целого:
otvet=round(ostatok*10.0);