Python如何删除decimal?

2024-06-25 22:32:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这方面找到了一些其他的话题,但我没能让它起作用。请原谅我对Python的天真。

Berekening1 = 8.5
Berekening2 = 8.1+4.8
Berekening3 = 8*10
Berekening4 = 3
x = Berekening1 * Berekening2 * Berekening3 + Berekening4
print "Het antwoord van de berekening is:",
round(x); print x,
print "."

我希望x是一个整数。我该怎么做?我试过intround

还有谁知道如何在代码执行结束时删除x和“.”之间的“空格”?


Tags: isde整数vanintprint话题round
3条回答

您需要将x重新分配给x = int(x)的值,或者如果您只想格式化输出,也可以使用str.format:

print "Het antwoord van de berekening is: {:.0f}.".format(x)

int和round将显示不同的行为,如果小数点后有任何>;=5,则int将落地,但round将向上取整,如果要实际使用round,则可能需要将两者结合起来:

In [7]: x = round(1.5)

In [8]: x
Out[8]: 2.0

In [9]: int(x)
Out[9]: 2

或者再次与str.format结合:

In [10]: print "Het antwoord van de berekening is: {:.0f}".format(round(1.5))
Het antwoord van de berekening is: 2

为了删除整数的小数部分(例如-45.55到45),可以尝试对数学库使用trunc()方法,就像这样-

import math
i=45.55
i=math.trunc(i)
print(i)

输出将为-45,trunc()方法不会将整数舍入为最接近的整数,只会截断小数部分。

或者如果您想要舍入,那么可以使用round()方法。

round()函数不能就地更改x变量,因为数字是不可变的。相反,将返回舍入结果,代码将忽略该结果。

将结果存储回x

x = round(x)

这将给您一个浮点数,四舍五入到最接近的整数。

或者,使用x = int(x),它给你一个整数,但是floors这个数字(删除小数部分,不管它是否接近下一个整数)。

相关问题 更多 >