Почему round()
ведут себя разные для int и float, когда ndigits
явно установлен на None
?Почему round raise на ndigits = None для целых чисел, но не для float?
тест консоли в Python 3.5.1:
>>> round(1, None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object cannot be interpreted as an integer
>>> round(1.0, None)
1
Update:
Я об этом как об ошибке (Issue #27936), которая была закреплена и закрыта. @PadraicCunningham и @CraigBurgler были правильными.
исправление было включено в следующие заключительные релизы:
- Python 3.5.3 (2017-01-16)
- Python 3.6.0 (2016-12-23)
Я получаю тот же 'TypeError' в Python 3.4 для' круглый (1.0, None) ' –
Я думаю, потому что Integer не нужно округлять. – giaosudau
@giaosudau: вы можете использовать круглые целые числа для округления до ближайшего 10. 'round (7, -1) => 10' – Jonatan