2017-01-17 11 views
-1

Я использовал float, чтобы прочитать номер в текстовом файле. например: number=float(25.0000), тогда я попытался записать это число в другом файле, поэтому использовал формат str. Но то, что я видел в текстовом файле, было похоже на 25.0. Мне нравится знать, что мне делать, чтобы иметь именно то число, которое у меня было раньше. (25.0000) Мне также нравится знать, даже если я не знаю, сколько десятичных чисел число есть можно или нет?изменение поплавка на строку

with open(file , 'w') as f: 
    num =float(25.0000) 
    f.write(str(num)) 
+0

У вас есть тот же номер, что у вас нет, это то же строковое представление этого числа. Предложите: https://docs.python.org/2/library/string.html –

ответ

1

Вы можете получить желаемый результат с:

with open(file, 'w') as f: 
    num = float(25.0000) 
    f.write('%.4f' % num)) 

(DOCS)

+0

что делать, если я не знаю, сколько десятичных чисел у меня есть? –

+0

Это проблема без легкого ответа. Один из возможных ответов можно найти здесь: http://stackoverflow.com/a/23749691/7311767 Если вы прочитали номер из файла, вы можете проверить его. Вы также можете работать с номерами фиксированной точки. Или, может быть, немного изучите sceince: https://en.wikipedia.org/wiki/Significant_figures –

2

Используйте format() функцию:

with open(file, 'w') as f: 
    num = float(25.0000) 
    f.write(str(format(num, '.4f'))) 
2

Это будет работать ..

num=float(25.0000) 
f=open('a.txt','w') 
f.write("%0.4f"%num) 

Здесь% - оператор форматирования текста, а 0.5 - общий синтаксис <fieldWidth>.<precission>, а f обозначает тип данных с плавающей точкой.