Я читаю данные из файла, изменяю его и записываю в другой файл. Новый файл будет прочитан другой программой, и поэтому крайне важно перенести точное форматирование
например, одно из чисел в моем входном файле:
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
возвращает строку.