我已经制作了一个程序来划分数字,然后返回数字,但问题是,当它返回数字时,它有一个像这样的小数:
2.0
但我希望它能给我:
2
无论如何,我能做到这一点吗?
提前致谢!
答案 0 :(得分:44)
您可以在最终结果上致电int()
:
>>> int(2.0)
2
答案 1 :(得分:26)
当一个数字作为小数时,它通常是Python中的float
。
如果要删除小数并将其保留为整数(int
)。您可以像这样调用int()
方法......
>>> int(2.0)
2
然而,int
轮次向下所以......
>>> int(2.9)
2
如果要舍入到最接近的整数,可以使用round
:
>>> round(2.9)
3.0
>>> round(2.4)
2.0
然后拨打int()
:
>>> int(round(2.9))
3
>>> int(round(2.4))
2
答案 2 :(得分:2)
您可能会喜欢下面的
# p and q are the numbers to be divided
if p//q==p/q:
print(p//q)
else:
print(p/q)
答案 3 :(得分:1)
>>> int(2.0)
您将得到答案为2
答案 4 :(得分:0)
def devision(a, b):
return a / b if a % b else a // b
答案 5 :(得分:0)
还有一个数学函数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)
答案 6 :(得分:0)
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。
B:
val = 13.58
if val % 1 == 0:
val = int(val)
else:
val = float(val)
print(val)
这次输出为13.58,因为当val除以1时,会有余数(0.58),因此val被声明为浮点数。
仅声明数字为整数(不测试余数)将舍弃十进制数字。
这样,最后就没有零了,除了零以外,其他任何东西都将被忽略。