为啥我的计算结果和计算器算的有出入啊

Sum=input("请输入带字符(¥ OR $)的金额:")
if Sum[0] in ['$']:
R=int(eval(Sum[1:])*7.1)
print("美元转换为人民币后是:¥{:.2f} 元".format(R))
elif Sum[0] in ['¥','¥']:
D=int(eval(Sum[1:])/7.1)
print("人民币转换为美元后是:${:.2f} 美元".format(D))
else:
print("输入格式错误")

去掉int就行 eval这里本身返回就是个float没必要在float


while True:
    Sum = input("请输入带字符(¥ OR $)的金额:")
    if Sum[0] in ['$']:
        R=eval(Sum[1:])*7.1
        print("美元转换为人民币后是:¥{:.2f} 元".format(R))
    elif Sum[0] in ['¥','¥']:
        D=eval(Sum[1:])/7.1
        print("人民币转换为美元后是:${:.2f} 美元".format(D))
    else:
        print("输入格式错误")

R和D别转换为int类型啊,这样就丢失小数部分了啊

不要用int,改成float
如:R=float(eval(Sum[1:])*7.1)

img