我在 Python 中有一个十进制数的列表或数组。我需要将它们四舍五入到最接近的 2 位小数,因为这些是货币金额。但是,我需要保持总和,即四舍五入到小数点后 2 位的原始数组的总和必须等于数组的四舍五入元素的总和。
到目前为止,这是我的代码:
myOriginalList = [27226.94982, 193.0595233, 1764.3094, 12625.8607, 26714.67907, 18970.35388, 12725.41407, 23589.93271, 27948.40386, 23767.83261, 12449.81318]
originalTotal = round(sum(myOriginalList), 2)
# Answer = 187976.61
# Using numpy
myRoundedList = numpy.array(myOriginalList).round(2)
# New Array = [ 27226.95 193.06 1764.31 12625.86 26714.68 18970.35 12725.41 23589.93 27948.4 23767.83 12449.81]
newTotal = myRoundedList.sum()
# Answer = 187976.59
我需要一种有效的方法来修改我的新舍入数组,使总和也是 187976.61。需要将 2 便士的差异应用于第 7 项和第 6 项,因为它们在四舍五入的条目和原始条目之间的差异最大。