Python如何删除小数?

时间:2015-09-19 14:32:29

标签: python integer decimal

我已经找到了其他一些主题,但我无法让它发挥作用。请原谅我对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和“。”之间的“空格”。在代码执行结束时?

4 个答案:

答案 0 :(得分:6)

您需要将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

答案 1 :(得分:2)

round()函数不能改变x变量,因为数字是不可变的。而是返回舍入的结果,代码会忽略该结果。

将结果存储回x

x = round(x)

这将为您提供一个四舍五入到最接近的整数的浮点数。

或者,使用x = int(x),它会给你一个整数,但是 floors 那个数字(删除小数部分,无论它是否更接近下一个整数)。 / p>

答案 2 :(得分:0)

如果仅删除整数的小数部分(例如-45.55到45),您可以尝试将trunc()方法与数学库一起使用,就像这样 -

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

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

或者如果你想要完善,那么你可以使用round()方法。

答案 3 :(得分:0)

Python中有两个函数,它们提供两种不同的结果:

some_float = 10.7
print(int(some_float)) 
print(round(some_float)) 

[output]10
[output]11

然后,如果您想要“。”但不想在数字后加零,您可以通过以下方式轻松打印出来:

print(str(round(some_float))+".")
[output]11.