Я хочу отформатировать список чисел с плавающей запятой максимум, скажем, с двумя десятичными знаками. Но мне не нужны конечные нули и конечные десятичные точки.
Так, например, 4.001
=> 4
, 4.797
=> 4.8
, 8.992
=> 8.99
, 13.577
=> 13.58
.
Простое решение - ('%.2f' % f).rstrip('.0')
('%.2f' % f).rstrip('0').rstrip('.')
. Но это выглядит довольно некрасиво и кажется хрупким. Какие-нибудь более приятные решения, может быть, с некоторыми волшебными флагами формата?
round()
: docs.python. org / 2 / library / functions.html # round - person TerryA   schedule 21.02.2013round
просто потому, что я нервничаю, я когда-нибудь получу1.1000000000009962
в качестве результата. - person nneonneo   schedule 21.02.2013.0
. Другой вопрос позволяет это. - person nneonneo   schedule 21.02.2013int()
избавится от.0
, но используйте его с осторожностью, так как он избавится от любых других десятичных знаков (так что, возможно, оператор if / else?) - person TerryA   schedule 21.02.2013if/else
, или я просто поставлю условие на'.%2f' % f
или что-то в этом роде. (Все еще странно сложно иметь хорошее решение ... Я действительно привык к тому, что в Python все очень просто) - person nneonneo   schedule 21.02.2013('%.2f' % f).rstrip('.0')
искажает1000.0
на1
. Итак, теперь нам нужно _4 _... - person nneonneo   schedule 21.02.2013