【发布时间】:2018-12-23 10:41:45
【问题描述】:
检查一个数字是浮点数还是整数是没有问题的。
这里有一些简单的方法:
a = 4
b = 4.123
-
res = float(a).is_integer()返回
True或False if type(a) == int: print("a ist an integer")if a - int(a) == 0: print('Integer') else: print('No Integer')
但是当我有一个大的数字时,它就不再起作用了:
a = 31231242354234534534534534534534534534534534535434645755453543543453534534534534534535345346756423423
b = 31231242354234534534534534534534534534534534535434645755453543543453534534534534534535345346756423423.111
我想检查非常多和非常大的数字来解决数学问题。
编辑: 我应该提一下,这些数字也应该被识别为整数:
5.243
6.0
312423423534534564564567457546756756856856745634523423423423423.0
我的计算结果是浮点数。我想检查结果是否为整数。
对于大数,常规方法行不通。
【问题讨论】:
-
检查模1除法余数是否为零。或者,将整数除以 1 并检查是否有区别。
-
就您而言,
4.00是int还是float? -
我不确定您的输入格式是什么。如果它已经是一个 Python 变量,那么所有建议的方法都可以工作。如果是文本,则搜索小数点分隔符可能会有所帮助。
-
请不要在您的问题中添加“编辑”部分。过度工作以使其更清楚您想要什么。此外,您最近的编辑声称您希望
5.243被视为整数!? -
这些大值从何而来,您如何存储它们?如果您使用的是标准 Python
float(即 IEEE 754 64 位浮点),则幅度大于2**52的任何值都是整数。只有有限多个数字可以表示为 64 位浮点数。大于 2**52 的数字的子集是整数。
标签: python python-3.x int