【问题标题】:allow input to be 2.d.p, if not prompt error msg允许输入为 2.d.p,如果不提示错误信息
【发布时间】:2013-04-20 01:51:39
【问题描述】:

我想确保用户在输入汇率和金额时,只能输入到2.d.p,如果输入不是2.d.p,那么一定有错误信息。如何在不弄乱我的代码的情况下做到这一点?

【问题讨论】:

    标签: input python-3.x numbers decimal python-3.3


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 但是使用这两种方法都会弄乱我当前的代码,我该如何将它添加到代码中,以免弄乱我的代码?
    • “弄乱你的代码”是什么意思?具体出了什么问题?
    • 我的意思是,我正在让我的代码进行浮点检查。我怎样才能做到这一点,以便当我输入某些内容时,python 会检查它是否是浮点数和 2.d.p继续?
    • @ConfusedChild24 你分别做这两件事。 input(),转换为float(或Decimal,不解析的情况处理),然后检查dp个数,然后继续。跨度>
    • -1:不适用于0.1,因为它表示为 ~0.10000000000000001
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多