Преобразуйте плавание для строкового представления с вырезанием нулевых десятичных чисел afer точки в Python

Я использовал FileSystemWatcher для контроля текстовых файлов для компонента, который я недавно создал. Могут быть более оптимальные варианты (я никогда не находил, что что-либо в моем ограничило исследование), но это, казалось, добивалось цели приятно:)

Дерьмо, мое плохое, Вы на самом деле после инструмента, чтобы сделать все это для Вас..

Хорошо, если Вы становитесь неудачными и хотите к самокрутке;)

9
задан Rodrigue 15 June 2012 в 15:03
поделиться

5 ответов

Использование % f спецификатор формата:

('%.2f' % (value,)).rstrip('0').rstrip('.')

Использование round () функция :

str(round(value)).rstrip('0').rstrip('.')
13
ответ дан 4 December 2019 в 08:52
поделиться

Используйте округление вместе с % g - вы хотите показать не более 2 цифр, поэтому округлите до двух цифр, затем используйте % g для печати это как можно короче:

>>> "%g" % round(20.016, 2)
'20.02'
>>> "%g" % round(20, 2)
'20'
6
ответ дан 4 December 2019 в 08:52
поделиться

Я не уверен, что именно вы здесь усложняете - вы получаете именно те результаты, которые указаны, например, здесь . Например:

In [32]: "%.2g" % 20.3
Out[32]: '20'

In [33]: "%.2g" % 1.2
Out[33]: '1.2'

В каждом случае вы запросили, чтобы всего было показано 2 цифры, и именно это и происходит (обе цифры стоят перед конечной точкой в ​​одном случае, одна до и одна после в другом случае, но это очевидное следствие соответствующих величин чисел).

Когда вы запрашиваете 20 цифр, вам показывают 20 цифр - большинство, конечно, не имеет смысла (с плавающей запятой двойной точности IEEE подходит только около 16 цифр точности), поэтому разумнее просить меньше. Вы, конечно, знаете, что числа с плавающей запятой представлены в двоичном формате, как объясняется здесь , верно? Используйте десятичное (конечно, намного медленнее,

2
ответ дан 4 December 2019 в 08:52
поделиться

Попробуйте ввести немного меньше 20 цифр. Если вы используете 20 цифр, это даст вам 20-значное представление значения с плавающей запятой, что может выглядеть немного странно.

1
ответ дан 4 December 2019 в 08:52
поделиться

использовать встроенную функцию round

1
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: