Добавить нули в float после десятичной точки в Python

Я читаю данные из файла, изменяю его и записываю в другой файл. Новый файл будет прочитан другой программой, и поэтому крайне важно перенести точное форматирование

например, одно из чисел в моем входном файле:

1.000000

my script применяет некоторую математику к столбцам и должен возвращать

2.000000

Но в настоящее время возвращается

2.0

Как я могу написать float, например my_float = 2.0, как my_float = 2.00000 в файл?

Ответ 1

Отформатируйте его до 6 десятичных знаков:

format(value, '.6f')

Demo:

>>> format(2.0, '.6f')
'2.000000'

Функция format() превращает значения в строки, следуя приведенным инструкциям по форматированию.

Ответ 2

Ответ с использованием команды format() выше, но вы можете захотеть просмотреть объект стандартной библиотеки Decimal, если вы работаете с поплавками, которые должны представлять точное значение. Вы можете установить точность и округление в своем классе контекста, но по умолчанию он сохранит количество нулей, которые вы разместите в нем:

>>> import decimal
>>> x = decimal.Decimal('2.0000')
>>> x
Decimal('2.0000')
>>> print x
2.0000
>>> print "{0} is a great number.".format(x)
2.0000 is a great number.

Ответ 3

Я пробовал n способов, но ничего не получилось так, как я хотел, наконец, это сработало для меня.

foo = 56
print (format(foo, '.1f'))
print (format(foo, '.2f'))
print (format(foo, '.3f'))
print (format(foo, '.5f'))

output:

56.0 
56.00
56.000
56.00000

Это означает, что 2-й аргумент format занимает десятичные разряды, на которые вам нужно перейти. Имейте в виду, что format возвращает строку.