PYTHON pandas 乘法的值错误 乘法问题

问题遇到的现象和发生背景

我在做某猫的订单整理的时候,因为是在外国公司,所以我们要按照当地的汇率帮忙算出这个单,大约是多少钱。
所以我们都会把每个订单的金额乘以汇率,就会算出当地的金额。

问题相关代码,请勿粘贴截图

Merage_2.loc[(Merage_2['订单关闭原因'].str.contains('买家未付款',na=False)),'미결재 금액'] = Merage_2['总金额']*Merage_2['人民币汇率']
运行结果及报错内容

在图片上可以看出,我手动计算的话,总金额 215.98 乘以 汇率 182.9 等于 39503。

img

但是我用上面的python代码计算的话。 是等于总金额 215.98 乘以 汇率 182.9 等于 39500

img

我就奇怪了.. 怎么会这样呢?

可以读出来规范化一下:

import pandas as pd
import numpy as np

 
Merage_2.loc[(Merage_2['订单关闭原因'].str.contains('买家未付款',na=False)),'미결재 금액'] = np.round(Merage_2['总金额'],2) * np.round(Merage_2['人民币汇率'],2)

因为在python当中浮点数乘法本身就存在误差:
https://blog.csdn.net/weixin_36239866/article/details/113489806
所以浮点数相乘的话最后结果保留需要的位数就好了:

img

你的第2张图片里的汇率是182.89,估计是转换数字的时候出了问题,你需要确认在原excel表里面存的值是否只是显示的时候被四舍五入了,实际上存的就是182.89.

兄弟,Python的计算结果是正确的;手动算的时候,你四舍五入了,汇率本来应该是182.89,但是手动算的时候,你按照182.9计算的;

img

img

应该是您算错了,我利用手算和windows下的计算器算都是39500.5822。