Я использовал FileSystemWatcher для контроля текстовых файлов для компонента, который я недавно создал. Могут быть более оптимальные варианты (я никогда не находил, что что-либо в моем ограничило исследование), но это, казалось, добивалось цели приятно:)
Дерьмо, мое плохое, Вы на самом деле после инструмента, чтобы сделать все это для Вас..
Хорошо, если Вы становитесь неудачными и хотите к самокрутке;)
Использование % f
спецификатор формата:
('%.2f' % (value,)).rstrip('0').rstrip('.')
Использование round () функция
:
str(round(value)).rstrip('0').rstrip('.')
Используйте округление вместе с % g
- вы хотите показать не более 2 цифр, поэтому округлите до двух цифр, затем используйте % g
для печати это как можно короче:
>>> "%g" % round(20.016, 2)
'20.02'
>>> "%g" % round(20, 2)
'20'
Я не уверен, что именно вы здесь усложняете - вы получаете именно те результаты, которые указаны, например, здесь . Например:
In [32]: "%.2g" % 20.3
Out[32]: '20'
In [33]: "%.2g" % 1.2
Out[33]: '1.2'
В каждом случае вы запросили, чтобы всего было показано 2 цифры, и именно это и происходит (обе цифры стоят перед конечной точкой в одном случае, одна до и одна после в другом случае, но это очевидное следствие соответствующих величин чисел).
Когда вы запрашиваете 20 цифр, вам показывают 20 цифр - большинство, конечно, не имеет смысла (с плавающей запятой двойной точности IEEE подходит только около 16 цифр точности), поэтому разумнее просить меньше. Вы, конечно, знаете, что числа с плавающей запятой представлены в двоичном формате, как объясняется здесь , верно? Используйте десятичное (конечно, намного медленнее,
Попробуйте ввести немного меньше 20 цифр. Если вы используете 20 цифр, это даст вам 20-значное представление значения с плавающей запятой, что может выглядеть немного странно.