如何测试一个数字是整数还是小数后只有零的浮点数?



澄清一下,我使用的是Python 2.7

我需要检查"x"是否是整数(例如 7(,或者"x"是否是小数点末尾只有一个零的浮点数(例如 7.0(。我有一个格式,所以我需要的帮助就是代码。

x = raw_input("Please enter a number: ")
if type(x) == int or __________ :
return True
else:
return False

我的目标是,如果你插入 5 或 5.0,它将返回 True,但如果你插入 6.7,它将返回 False。

下划线(空格(是我需要添加代码的地方。我尝试了许多不同的尝试,但都失败了。

啊,要是浮点数有"is_integer"这样的方法就好了......

一个非常简单的测试,它之所以有效,是因为 Python 整数的分辨率是无限的:

return float(x) == int(float(x))

raw_input的结果不是一个数字,而是一个字符串。这就是为什么它必须首先转换为float

假设你有一个值 r,这是一个浮点数/实数,

r = 3.33333

那么当 are 是浮点数/实数(非整数(时,下面的值为非零,

f = r - int(r)
print r -int(r)

但是,正则表达式可能是一个更通用的解决方案,因为您可以搜索匹配的 \d*.\0*[1-9]{1} 作为浮点数,以及 \d+.?0* 被解释为整数。

最新更新