我做了一个程序,将数字相除然后返回数字,但问题是当它返回数字时,它有一个像这样的小数:
2.0
但我希望它给我:
2
那么无论如何我可以做到这一点吗?
提前致谢!
您可以调用int()
最终结果:
>>> int(2.0)
2
你可能会像下面这样
# p and q are the numbers to be divided
if p//q==p/q:
print(p//q)
else:
print(p/q)
有一个数学函数modf()
也可以将其分解。
import math
print("math.modf(3.14159) : ", math.modf(3.14159))
将输出一个元组:
math.modf(3.14159) : (0.14159, 3.0)
如果您想保留整个部分和小数部分以供参考,这很有用,例如:
decimal, whole = math.modf(3.14159)
>>> int(2.0)
你会得到答案 2
if val % 1 == 0:
val = int(val)
else:
val = float(val)
这对我有用。
它是如何工作的:如果 val 和 1 的商的余数为 0,则 val 必须是整数,因此可以声明为 int 而不必担心丢失十进制数。
比较这两种情况:
A:
val = 12.00
if val % 1 == 0:
val = int(val)
else:
val = float(val)
print(val)
在这种情况下,输出为 12,因为 12.00 除以 1 的余数为 0。根据这些信息,我们知道 val 没有任何小数,我们可以将 val 声明为 int。
乙:
val = 13.58
if val % 1 == 0:
val = int(val)
else:
val = float(val)
print(val)
这次输出是 13.58,因为当 val 除以 1 时有余数 (0.58),因此 val 被声明为浮点数。
通过仅将数字声明为 int(不测试余数)十进制数字将被截断。
这样一来,最后就没有零了,除了零之外,其他的都不会被忽略。
def division(a, b):
return a / b if a % b else a // b