0

round() function in Python3

Why print(round(2, 2)) prints 2 instead of 2.00? Thx!

22nd Feb 2020, 2:59 AM
QWKKK
QWKKK - avatar
5 Respostas
+ 5
I think it is not working because you are trying to round an integer. There is no need to round an integer. print(round(2,2)) gives 2 but print(round(2.00,2)) gives 2.0 and print(round(2.739029271,3)) gives 2.739. So, you should use a float instead of int as there is no point in rounding an int. And if there is still nothing to round in the float, it will not show many zeroes. For Example-- print(round(2.0,5)) will still give 2.0 not 2.00000 Similarly if there are only zeroes in the part you want to round and other numbers after that, it will show-- For Example-- print(round(2.000001, 5)) Then it will not show 2.00000 but only 2.0 print(round(2.00001,5)) It will show all 0s as the fifth number after the decimal point is not 0. 2.00001 will be it's output. Edit: If you take a float such as 2.00010 print(round(2.00010,5)) It will not show 0s after the last non-zero number. So output will be 2.0001 and NOT 2.00010
22nd Feb 2020, 3:08 AM
Utkarsh Sharma
Utkarsh Sharma - avatar
+ 1
Thx a lot, but I still cant fully understand that, in the 2nd example, print(round(2.00, 2)) gives 2.0, and print(round(2.0000001, 5)) gives 2.0 (I can understand that), but why print(round(2, 2)) gives 2 instead of 2.0? Utkarsh Sharma
22nd Feb 2020, 3:22 AM
QWKKK
QWKKK - avatar
+ 1
QWKKK Because in those examples, they were float.... While 2 is an integer. If it was a float like 2.0 or 2.00 something it would also give the out as those example but it is an integer, 2 with no decimal point. So it will print only 2 not 2.0
22nd Feb 2020, 3:25 AM
Utkarsh Sharma
Utkarsh Sharma - avatar
0
Utkarsh Sharma I understand! Thx for your time!
22nd Feb 2020, 3:27 AM
QWKKK
QWKKK - avatar