Python:删除除法小数

时间:2013-07-15 09:53:11

标签: python decimal division

我已经制作了一个程序来划分数字,然后返回数字,但问题是,当它返回数字时,它有一个像这样的小数:

2.0

但我希望它能给我:

2
无论如何,我能做到这一点吗?

提前致谢!

7 个答案:

答案 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被声明为浮点数。

仅声明数字为整数(不测试余数)将舍弃十进制数字。

这样,最后就没有零了,除了零以外,其他任何东西都将被忽略。