我在做某猫的订单整理的时候,因为是在外国公司,所以我们要按照当地的汇率帮忙算出这个单,大约是多少钱。
所以我们都会把每个订单的金额乘以汇率,就会算出当地的金额。
Merage_2.loc[(Merage_2['订单关闭原因'].str.contains('买家未付款',na=False)),'미결재 금액'] = Merage_2['总金额']*Merage_2['人民币汇率']
在图片上可以看出,我手动计算的话,总金额 215.98 乘以 汇率 182.9 等于 39503。
但是我用上面的python代码计算的话。 是等于总金额 215.98 乘以 汇率 182.9 等于 39500
我就奇怪了.. 怎么会这样呢?
可以读出来规范化一下:
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
所以浮点数相乘的话最后结果保留需要的位数就好了:
你的第2张图片里的汇率是182.89,估计是转换数字的时候出了问题,你需要确认在原excel表里面存的值是否只是显示的时候被四舍五入了,实际上存的就是182.89.
兄弟,Python的计算结果是正确的;手动算的时候,你四舍五入了,汇率本来应该是182.89,但是手动算的时候,你按照182.9计算的;
应该是您算错了,我利用手算和windows下的计算器算都是39500.5822。