Важно использовать точно определенные правила округления для конкретного приложения. Если в приложении для выставления счетов указано, что все суммы отдельных позиций будут округлены до ближайшей копейки, то сумма счета должна отражать это. Если в нем указано, что все расчеты будут выполняться с точностью до сотых долей копейки, то счет-фактура, вероятно, должен отражать это (возможно, форматируя дробные копейки как маленькие надстрочные индексы, как это делают цены на газ). В некоторых случаях можно распределить дробные пенни среди пунктов счета на постоянной основе, например,
old_total = total
old_rounded_total = rounded_total
total = total + line_item
rounded_total = round_to_penny(total)
displayed_line_item_cost = rounded_total - old_rounded_total
В других случаях можно округлить все строки счета-фактуры до ближайшего пенни, вычесть из этой суммы сумму всех не округленных строк счета-фактуры и скорректировать вверх или вниз те строки, которые были ближе всего к границе "пенни". 1004 *
Если семантика округления четко определена и приложение следует им, результаты будут точно соответствовать спецификации. Если семантика не четко определена, результаты также не будут.