python - 检查输入是否为 float 且小数点后正好有 2 个数字

标签 python validation

<分区>

我正在处理一个要求我从用户那里获取浮点值的类项目。此浮点值必须在小数点后恰好有两个数字才能成为有效输入。这是我目前所拥有的。

while True:
    try:
        cost = float(input("Enter the price: "))
        if cost % 1 == 0:
            print("Invalid input for price.")

        else:
            if cost > 0:
               return cost

    except ValueError:
        print("Invalid input for price.")

cost % 10 进行比较排除了以 .00 结尾的整数和 float ,但我不确定如何将可接受的输入限制为 float 小数点后恰好 2 个数字(即 x.xx)。另外我相信我需要接受像 5.00 这样的 float ,所以我的方法不会削减它。我试过将 cost 转换为 str 并设置长度限制,但这仍然容易出错。有什么建议吗?

最佳答案

你可以在转换为 float 之前检查它:

cost = input("Enter the price: ")
if len(cost.rsplit('.')[-1]) == 2:
   print('2 digits after decimal point')

关于python - 检查输入是否为 float 且小数点后正好有 2 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23307209/

相关文章:

游戏的 C++ 输入验证

php - 注册页面上的 mysql_real_escape_string

ruby-on-rails - Rails 5.2 rspec - 如何测试模型是否确实使用自定义验证器?

验证已触发,但 Silverlight 4 中的用户控件未出现红色边框

Python CGI FieldStorage 测试工具

python - 如何绕过 NameError name is not Defined in python

python - 动画中的抗锯齿字体

Javascript 验证 (gen_validatorv4.js) - 基于复选框结果

python - 在我的 Web 应用程序中为架构做 302 是否可以?

python - Pandas 相似度计算中的序数变量处理