Python форматирование чисел с плавающей точкой - PullRequest
0 голосов
/ 08 июня 2009

мой ввод 3.23, но когда я использую float, он становится 3.2,

когда мой ввод 3,00, когда я плаваю на нем, он становится 3,0

когда я конвертирую в float из строки, я все равно хочу, чтобы он был 3.00, а не 3.0 Является ли это возможным? я хочу знать код, чтобы сделать это возможным, и когда я делаю проблему, в которой десятичная точка до 2 цифр имеет значение, 3.23 лучше, чем 3.2, для большей точности

Ответы [ 4 ]

3 голосов
/ 16 декабря 2012

Поскольку эта тема в первую очередь относится к словам "десятичный питон с форматированием строки", я думаю, что было бы хорошо дать более свежий ответ:

>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'
1 голос
/ 08 июня 2009

Я полагаю, что вам нужно преобразовать число с плавающей точкой в ​​число с желаемым количеством десятичных знаков. Вы можете добиться этого, используя% .3f (здесь 3 - количество десятичных знаков, которые вы хотите напечатать. Например:

>>> print "Value: %.2f" % 3.0000

Значение: 3,00

1 голос
/ 08 июня 2009

, если вы хотите десятичную точность, используйте модуль python decimal:

from decimal import Decimal
x = Decimal('3.00')
print x

Что печатает:

Decimal('3.00')
0 голосов
/ 08 июня 2009

Если вы хотите напечатать число с плавающей запятой с желаемой точностью, вы можете использовать выходные коды форматирования, как показано ниже:

Предполагая, что х = 3,125

print "%.1f" % (x)    # prints 3.1
print "%.2f" % (x)    # prints 3.12
print "%.3f" % (x)    # prints 3.125
print "%.4f" % (x)    # prints 3.1250

Это будет работать в Python 2.6 (я думаю, они изменили функцию печати в версии 3).

Вы также должны понимать, что числа с плавающей запятой могут храниться только с определенной точностью, поэтому иногда вы не получите обратно одно и то же число. Например, 0.1 может быть сохранен как что-то вроде 0.9999999987.

...