37

我做了一个程序,将数字相除然后返回数字,但问题是当它返回数字时,它有一个像这样的小数:

2.0

但我希望它给我:

2

那么无论如何我可以做到这一点吗?

提前致谢!

4

7 回答 7

67

您可以调用int()最终结果:

>>> int(2.0)
2
于 2013-07-15T09:53:46.140 回答
32

当一个数字作为小数时,它float在 Python 中通常是 a。

如果要删除小数并将其保留为整数 ( 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
于 2013-07-15T10:03:19.837 回答
3

你可能会像下面这样

# p and q are the numbers to be divided
if p//q==p/q:
    print(p//q)
else:
    print(p/q)
于 2018-06-28T22:12:45.593 回答
2

有一个数学函数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)

于 2019-08-26T20:41:57.610 回答
1
>>> int(2.0)

你会得到答案 2

于 2016-01-05T12:58:16.200 回答
1
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(不测试余数)十进制数字将被截断。

这样一来,最后就没有零了,除了零之外,其他的都不会被忽略。

于 2020-06-01T14:02:49.317 回答
0
def division(a, b):
    return a / b if a % b else a // b
于 2019-06-22T20:59:16.643 回答