我正在开发一个类项目,需要我从用户那里获取浮点值。该浮点值必须在小数点后恰好有两个数字才能成为有效输入。这是我到目前为止所拥有的。
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 % 1
to 0
排除以 .00 结尾的整数和浮点数,但我不确定如何将接受的输入限制为小数点后正好 2 个数字(即 x.xx)的浮点数。另外我相信我需要接受像 5.00 这样的浮动,所以我的方法不会削减它。我尝试过转换cost
到 str 并设置长度限制,但这仍然容易出错。有什么建议吗?
您可以在转换为浮点之前检查它:
cost = input("Enter the price: ")
if len(cost.rsplit('.')[-1]) == 2:
print('2 digits after decimal point')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)