Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 부동 소수점 숫자를 고정 너비로 포맷하는 방법

Python에서 부동 소수점 숫자를 고정 너비로 포맷하는 방법

Python에서는 문자열 포매팅(string formatting)을 활용하면 부동 소수점 숫자를 원하는 고정 너비로 손쉽게 출력할 수 있습니다. 예를 들어, 전체 너비 12자리 안에서 소수점 위치를 맞추고 소수점 이하는 4자리까지만 표시하고 싶다면 다음과 같이 작성합니다.

>>> x = 12.35874
>>> print("{:12.4f}".format(x))
12.3587

여기서 사용된 포맷 지정자 {:12.4f}의 의미는 다음과 같습니다.

  • 12: 숫자를 포함한 전체 출력 너비(문자 수)
  • .4: 소수점 이하 자릿수(지정 자릿수에서 반올림)
  • f: 고정 소수점(fixed-point) 표기 방식

% 연산자를 사용하는 방법

format() 메서드 외에도 전통적인 문자열 보간(string interpolation) 방식인 % 연산자를 사용해도 동일한 결과를 얻을 수 있습니다.

>>> x = 12.35874
>>> print("%12.4f" % x)
12.3587

두 방식 모두 출력 결과가 지정한 너비보다 짧으면 앞쪽에 공백이 채워지므로, 여러 줄의 숫자를 출력할 때 소수점이 세로로 깔끔하게 정렬되는 장점이 있습니다.

f-string을 활용한 간결한 표현

참고로 Python 3.6 이상에서는 f-string을 사용하면 더욱 간결하게 동일한 결과를 얻을 수 있습니다.

>>> print(f"{x:12.4f}")
12.3587

상황에 따라 편한 방식을 선택하면 되지만, 최신 Python 코드에서는 가독성이 좋은 f-string 또는 format() 메서드를 사용하는 것이 권장됩니다.