Получение количества цифр - PullRequest
0 голосов
/ 02 июня 2011

Я искал способ в python, чтобы получить только 4 цифры справа от запятой десятичного числа, но я не смог найти. Взглянул на этот пост, ---> Округление десятичных дробей с новой функцией формата Python , но функция там написана ...

    >>> n = 4
    >>> p = math.pi
    >>> '{0:.{1}f}'.format(p, n)
    '3.1416'

... кажется, не работает в моем случае.

Я импортировал модули "math" и "decimal", но, возможно, мне не хватает некоторых других для импорта, но я не знаю, какие из них импортировать.

Спасибо всем, и извините, если этот вопрос уже был опубликован.

Peixe

Ответы [ 3 ]

7 голосов
/ 02 июня 2011
"%.3f" % math.pi

Я знаю, что он использует старый синтаксис, но лично я предпочитаю его.

2 голосов
/ 02 июня 2011

Все, что у вас хорошо (округление от 5 до 6)

Если вы хотите усечение вместо округления, вы можете перейти:

from math import pi as p
print p
print int(p*10**4)/10.0**4

p=str(p).split(".")
p[1]=p[1][:4]
print ".".join(p)

вывод:

3.14159265359

3.1415

3.1415

1 голос
/ 02 июня 2011

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

>>> str(math.pi).split('.')[1][:4]
<<< '1415'

или decimal.Decimal:

>>> Decimal(math.pi).as_tuple()[1][1:5]
<<< (1, 4, 1, 5)
...