Ну для начала если у вас слагаемые amount имеют точность 0,01, то сумма (в предельном случае) будет иметь точность до 0,01*N, где N - количество слагаемых. У нас конечно есть центральная предельная теорема, которая говорит, что в среднем худшего случая не будет и матожидание суммы будет сумма слагаемых, но всё равно точность суммы будет хуже (больше), чем 0,01.
Производя операцию
percent[i] = amount[i] * 100 / Sum
amount[i] имеет точность 0,01, Sum - 0,01*N
Считаем точность вычислений percent: она получается от 0,01*100/(Sum + 0,01*N) до 0,01*100/(Sum - 0,01*N)
Если пренебречь точностью Sum, и сумма у вас меньше 100, то погрешность будет точно больше 0,01 - отсюда несовпадение обратных преобразований.
Методика тут указана примерная, насколько я помню математическое образование :)
Точность в данном случае немного неверный термин. Ищите по словосочетанию "расчёт погрешности"