코딩하는-모습
코딩

소수점이 있는 값의 경우 이를 정리하고 출력하는 것이 깔끔합니다. 가장 쉬운 방법은 값을 직접 바꿔서 출력하는 것입니다. 하지만 값을 뒤에서 사용해야 하는 경우, 포맷만 바꿔서 출력할 수도 있습니다. 각각의 방법을 차례대로 자세히 알아보겠습니다.

 


소수점이 있는 경우 일정 자릿수가 넘어가면 부동 수소점으로 표시됩니다. 예를 들어 1.123e6 과 같이 출력되는데요. 이는 소수점이 긴 경우에 10의 지수 형태로 출력하는 것인데요.

e뒤에 있는 숫자만큼 소수점을 옮기면 원래 숫자가 됩니다. 위의 경우에는 소수점을 오른쪽으로 6칸 이동하면 됩니다. -6이라면 왼쪽으로 6칸 이동합니다. 여기서 e는 지수를 의미하는 exponent의 앞자리입니다.

 

1. 값을 바꾸는 방법

값이 너무 큰 경우에는 그냥 정수형으로 바꾸거나, 혹은 소수점 자릿수를 올림, 내림, 반올림합니다. 예를 들어 123.123456789라고 하면 출력한다고 가정해 보겠습니다.

int로 변환하면 소수점은 날아갑니다.

 

a=123.123456789
int(a)

Out]: 123


round함수를 이용하면 반올림할 수 있습니다. 함수의 입력 파라미터로 몇 번째 자리까지 표현할지 정할 수 있습니다.

 

round(a, 3)
Out]: 123.123

round(1,5 )
Out]: 123.12346

 

math 모듈의 ceil과 floor함수는 각각 올림과 내림을 할 수 있습니다. 소수점 자리를 지정하는 것은 불가능하고, 정수형으로 표현해 줍니다.

 

math.ceil(a)
Out]: 124

 

ceil은 천장, floor는 바닥이라는 뜻이 있다는 것을 기억하면 유추하기 쉽습니다.

 

math.floor(a)
Out]: 123

 

 

2. 출력 포맷을 변경하는 경우

 

format 함수를 이용하면 변경이 가능한데요. 출력하고자 하는 값 뒤에 :을 입력하고 .1f와 같은 식으로 포맷을 지정합니다. 여기서 .뒤에 숫자는 소수점 몇 째 자리까지 출력할지를 의미 합니다.

print('{0:.1f}'.format(a))
Out]: 123.1

 

앞에 0은 지금은 입력하지 않아도 되는데요. format 앞에 있는 문자열 중의 몇  번째 값을 출력할지를 의미합니다. 예를 들어 아래와 같이 입력하면 뒤에 있는 b가 출력됩니다.

 

print('{:.1f}'.format(a))
Out]: 123.1

b=11.11111
print('{1:.2f}'.format(a,b))
Out]: 11.11

 

. 앞에 숫자를 입력하면 정수 부분을 몇 칸으로 나타낼지를 정할 수 있습니다. 다만 정수형 숫자 길이보다 적은 숫자를 입력한다고 해서, 숫자가 잘려서 출력되지는 않습니다.

print('{:10.1f}'.format(a))
Out]:     123.1
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기