没想到,我遇到了非数学四舍五入的计算。
简单示例
df = pd.DataFrame({'a':[166,34,12,56],
'b': [27.9625,24.6825,32.738,45.344]})
print df
print (df['a']*df['b'])
print (df['a']*df['b']).round(2)
在输出中我得到:
a b
0 166 27.9625
1 34 24.6825
2 12 32.7380
3 56 45.3440
0 4641.775
1 839.205
2 392.856
3 2539.264
dtype: float64
0 4641.77
1 839.20
2 392.86
3 2539.26
dtype: float64
从示例中可以看出,从 5 开始的数字向下舍入,其余的则正确舍入。这是我的问题,如何在数学上对计算结果进行四舍五入?
我有熊猫版本 u'0.23.4',python 版本 2.7.15 |Anaconda, Inc.| (默认,2018 年 5 月 1 日,23:32:55)
Pandas / Numpy 和 Python 中的舍入通常是根据标准完成的
IEEE_754:从功能的帮助
round():例子:
舍入
Numpy array或Pandas Series数学: