【发布时间】:2013-04-20 01:51:39
【问题描述】:
我想确保用户在输入汇率和金额时,只能输入到2.d.p,如果输入不是2.d.p,那么一定有错误信息。如何在不弄乱我的代码的情况下做到这一点?
【问题讨论】:
标签: input python-3.x numbers decimal python-3.3
我想确保用户在输入汇率和金额时,只能输入到2.d.p,如果输入不是2.d.p,那么一定有错误信息。如何在不弄乱我的代码的情况下做到这一点?
【问题讨论】:
标签: input python-3.x numbers decimal python-3.3
检查四舍五入到 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
除了它避免了浮点表示问题,尤其是当您开始对数字进行算术运算时。
【讨论】:
input(),转换为float(或Decimal,不解析的情况处理),然后检查dp个数,然后继续。跨度>
0.1,因为它表示为 ~0.10000000000000001