python форматирование чисел с плавающей запятой

StackOverflow https://stackoverflow.com/questions/964372

  •  12-09-2019
  •  | 
  •  

Вопрос

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

когда мой ввод равен 3.00 , когда я делаю float на нем , он становится 3.0

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

Это было полезно?

Решение

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

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

Значение:3.00

Другие советы

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

>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'

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

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

Это печатает:

Decimal('3.00')

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

Предполагая , что x = 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top