Ну и что? Например в банках именно так и округляют.
Ты писал, что у тебя из-за этого какое-то отклонение в 3% вылезает. Вот в это я поверить не могу.
Ты же не видел весь мой код? Так что можешь верить а можешь нет. Весь код программы приводить я все равно не собираюсь, т.к. во первых его очень много, во вторых никому тут не будет интересно в него вникать. И вообще тут не код обсуждается, а причина неправильной работы функции round().
Почитай название темы.
А то что там в банках работают и округляют как попало, так мне это как-то до одного места