2012-05-29 4 views
1

Я пишу цифры с плавающей точкой в ​​текстовый файл, и я бы очень признателен, если бы Python прекратил писать цифры типа «0.000002» как «2e-6». Что я могу сделать?Python float to string, только «пунктирная нотация»?

+0

Как выглядит код вывода текста? – birryree

+0

Вы не зашли на сайт? –

+2

дубликат этого вопроса, имеет несколько хороших ответов http://stackoverflow.com/questions/658763/how-do-i-suppress-scientific-notation-in-python –

ответ

2

Вы можете использовать директивы форматирования, такие как этот:

n = 0.000002 
print('{:f}'.format(n)) 
0.000002 
более

информации о форматировании см этих Python docs

Или старого стиля при работе заранее Python v2.6 (спасибо @ mgilson и @artSwri)

print('%f' % n) 
+0

Это повышает значение ValueError на python 2.6 (OS-X) (ValueError: имя нулевой длины в формате) – mgilson

+0

(версия python> = 2.6, необходимая для метода str) –

+0

@ArtSwri - я использую python 2.6. (что соответствует требованиям) – mgilson

1
>>> "%f" % 2e-6 
'0.000002' 
+0

Это не работает, если вы можете использовать константу для '2e-7' – mgilson

+0

@mgilson См. Комментарий в комментарии KDiTraglia о том, почему 2e-7« не работает »и как вы можете это исправить. –

+1

Вы можете изменить его на '% .7f '% 2e-7', чтобы это сработало. – mgilson