Input 允许输入为2.d.p,如果不提示错误消息

Input 允许输入为2.d.p,如果不提示错误消息,input,python-3.x,numbers,decimal,python-3.3,Input,Python 3.x,Numbers,Decimal,Python 3.3,我想确保当用户输入汇率和金额时,他只能将其输入到2.d.p,如果输入不是2.d.p,那么一定会有错误消息。如何在不弄乱代码的情况下执行此操作?检查四舍五入到2 dp的数字是否相同: x = float(input(prompt)) if round(x, 2) != x: # x has more than 2 dp 此外,对于货币应用,考虑使用该模块-它工作的方式相同: from decimal import Decimal x = Decimal(input(prompt)) if

我想确保当用户输入汇率和金额时,他只能将其输入到2.d.p,如果输入不是2.d.p,那么一定会有错误消息。如何在不弄乱代码的情况下执行此操作?

检查四舍五入到2 dp的数字是否相同:

x = float(input(prompt))
if round(x, 2) != x:
    # x has more than 2 dp

此外,对于货币应用,考虑使用该模块-它工作的方式相同:

from decimal import Decimal
x = Decimal(input(prompt))
if round(x, 2) != x:
   # x has more than 2 dp

除了避免浮点数表示问题外,尤其是当你开始对数字进行算术运算时。

但是使用这两种方法都会弄乱我的当前代码,我如何将其添加到代码中,使其不会弄乱我的代码?你怎么说“弄乱你的代码”?具体出了什么问题?我的意思是,我要让我的代码做一个浮点检查。。我怎样才能使它在我输入东西时,python在继续之前检查它是否是一个float和2.d.p?@ConfusedChild24这两件事是分开做的
input()
,转换为float(或Decimal,并处理它不解析的情况),然后检查dp的数量,然后继续。-1:不适用于
0.1
,因为它表示为~0.100000000000001