+ 1
How to manage rounding and decimals?
a = 1.4999999999999999 b = round(a) print(b) 2 c = 1.499999999999999 d = round(c) print(d) 1 -So my question is what is the simplest way to cut down the number of decimal places taken into account and what would be the result? 1 or 2? -Second question: What function of c would make the result of print(d) 2 instead of 1? -Third question: Is there a simple way to always express the bigger number (so that even if it's only 1.14, you get "2")? -Fourth question: Is there a simple way (and what it is) to make up your own rounding system? ...for example let's say that everything above 1.33 is "2" and bellow 1.33 is "1".
1 Odpowiedź
+ 4
1)
As described in the documentation linked in your previous question, Python takes into account 17 digits after floating point. That's why a and c are different from each other.
https://docs.python.org/3/tutorial/floatingpoint.html
2)
We need to understand the rounding algorithm that modern Python uses
https://docs.python.org/3/library/functions.html#round
3)
"The bigger number"/ "rounding up" is math.ceil
("The smaller number"/ " rounding down" would be math.floor)
4)
You could write an function for it.
E.g:
if (math.ceil(x) - x > 1/3):
return math.ceil(x)
else:
return math.floor(x)