파이썬에서 소수점 이하 두 자리로 부동 소수점 표시


136

float 인수 (일반적으로 하나의 유효 숫자가있는 정수 또는 소수)를 취하는 함수가 있으며 소수점 이하 두 자리 (5-> 5.00, 5.5-> 5.50 등)가있는 문자열로 값을 출력해야합니다. 파이썬에서 어떻게 할 수 있습니까?

답변:


148

이를 위해 문자열 형식화 연산자를 사용할 수 있습니다.

>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'

연산자의 결과는 문자열이므로 변수에 저장하거나 인쇄 할 수 있습니다.


273

이 게시물이 잠시 동안있을 수 있으므로 python 3 구문을 지적하십시오.

"{:.2f}".format(5)

9
진수는 예를 들어, 변수의 경우 그냥 완성도를 들어 d=3, 다음 구문은"{:.{}f}".format(5, d)
jurajb

74

f 문자열 형식화 :

이것은 Python 3.6의 새로운 기능입니다. 문자열은 평소와 같이 따옴표로 묶고 원시 문자열 f'...과 동일한 방식으로 앞에 붙습니다 r'.... 그런 다음 문자열, 변수, 숫자, 중괄호 안에 넣고 싶은 것을 배치하면 f'some string text with a {variable} or {number} within that text'파이썬은 이전 문자열 형식화 방법과 마찬가지로 평가합니다.이 방법은 훨씬 읽기 쉽습니다.

>>> a = 3.141592
>>> print(f'My number is {a:.2f} - look at the nice rounding!')

My number is 3.14 - look at the nice rounding!

이 예 에서 이전 문자열 형식화 방법과 유사한 방식으로 소수점 이하 자릿수형식화하는 것을 볼 수 있습니다 .

NB a는 숫자, 변수 또는 식일 수 있습니다 (예 :) f'{3*my_func(3.14):02f}'.

앞으로 새로운 코드를 사용하면 f- 문자열을 훨씬 더 읽기 쉽고 훨씬 빠르기 때문에 일반적인 % s 또는 str.format () 메서드보다 f- 문자열을 선호합니다 .


6

문자열 형식 :

print "%.2f" % 5

1
그러나이 모든 그래서 그들에 어떤 수학 연산을 수행 할 수 없습니다 IAM, 문자열
itsaruns

@itsaruns 소수점 이하 자릿수를 추가하면 수학 연산 만 수행해도 차이가 없습니다. 당신이 찾고있는 사람이 될 수 있습니다 math.floor, math.ceil또는round
스틴 SCHUTT

5

파이썬 문자열 형식을 사용합니다.

>>> "%0.2f" % 3
'3.00'

4

문자열 형식화 :

a = 6.789809823
print('%.2f' %a)

또는

print ("{0:.2f}".format(a)) 

라운드 기능을 사용할 수 있습니다 :

print(round(a, 2))

round ()의 좋은 점은이 결과를 다른 변수에 저장 한 다음 다른 목적으로 사용할 수 있다는 것입니다.

b = round(a, 2)
print(b)

5
에 대한 공감 round. 표시 용도로만 사용해서는 안됩니다 .
wim

@wim 귀하의 의견을 존중하지만이 답변은 누군가의 요구 사항을 충족시키기위한 것입니다.
debaonline4u

2
@ debaonline4u wim이 맞습니다. round(5.0001, 2)-> 5.0, not'5.00'
wjandrea


3

실제로 다르게 표시하는 대신 숫자 자체를 변경하려면 format ()을 사용하십시오.

소수점 이하 2 자리로 포맷하십시오.

format(value, '.2f')

예:

>>> format(5.00000, '.2f')
'5.00'

0

나는 그것이 오래된 질문이라는 것을 알고 있지만, 스스로 답을 찾는 데 어려움을 겪고있었습니다. 다음은 내가 생각해 낸 것입니다.

파이썬 3 :

>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict) 
0.12_0.13

3
안녕하세요, Stack Overflow에 오신 것을 환영합니다. 이미 많은 답변이있는 질문에 대답 할 때는 제공하는 응답이 실질적인 이유에 대한 통찰력을 추가해야하며 원래 포스터에서 이미 심사 한 내용을 단순히 반영하는 것이 아닙니다. 이것은 제공 한 것과 같은 "코드 전용"답변에서 특히 중요합니다.
chb

-1

Python 3 구문 사용 :

print('%.2f' % number)

1
% -formatting은 Python 3에 새로운 것은 아니며 6 년 전의 답변 에서 이미 다루고 있습니다
wjandrea

-1

입력을 호출 할 때 소수점 이하 두 자리가 제한된 부동 소수점 값을 얻으려면,

이것을 확인하십시오 ~

a = eval(format(float(input()), '.2f'))   # if u feed 3.1415 for 'a'.
print(a)                                  # output 3.14 will be printed.

eval그냥 문자열 할 수 round있습니까? 당신이 공급하면 이후 어쨌든 이것도 제대로 작동하지 않습니다 5, 당신이 얻는 5.0대신 5.00영업 이익은 원처럼.
wjandrea

이것은 또한 작동하지 않습니다 naninf.
wjandrea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.