Python how to remove decimal?

2019-06-03 22:04发布

I've found some other topics on this but I couldn't get it to work. Please pardon my naivety with 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 "."

I want x to be an integer. How do I do that? I tried both int and round.

Anyone also have an idea on how to remove the "space" between x and "." at the end when code is executed?

3条回答
▲ chillily
2楼-- · 2019-06-03 22:21

The round() function cannot alter the x variable in place, as numbers are immutable. Instead, the rounded result is returned, which your code ignores.

Store the result back in x:

x = round(x)

This will give you a floating point number rounded to the nearest whole number.

Alternatively, use x = int(x), which gives you an integer number, but floors that number (removes the decimal portion regardless if it is closer to the next whole number or not).

查看更多
Root(大扎)
3楼-- · 2019-06-03 22:25

For just removing decimal part of an integer(eg- 45.55 to 45), you can try using trunc() method with math library, just like this-

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

Output will be- 45, trunc() method doesn't rounds off the integer to the nearest whole number, it justs cuts off the decimal portion.

Or if you want to round off then you can use the round() method.

查看更多
闹够了就滚
4楼-- · 2019-06-03 22:34

You would need to reassign x to the value of x = int(x) or you could also use str.format if you just want the output formatted:

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

int and round will exhibit different behaviour, if you have anything >= 5 after the decimal point then int will floor but round will round up, if you want to actually use round you might want to combine the two:

In [7]: x = round(1.5)

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

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

Or again combine with str.format:

In [10]: print "Het antwoord van de berekening is: {:.0f}".format(round(1.5))
Het antwoord van de berekening is: 2
查看更多
登录 后发表回答