내 잡다한 노트

파이썬 자리수 조절(소수점, 올림, 반올림) 본문

Language/Python

파이썬 자리수 조절(소수점, 올림, 반올림)

peanutwalnut 2022. 5. 15. 12:51

# 올림, 내림

math 클래스 안의 ceil, floor함수를 사용하자

math.ceil(i)는 올림

math.floor(i)는 내림

근데, 인자로 들어온 i의 값이 정수 타입으로 반환된다고 한다.

 

#반올림

소수점을 n번째 까지만 표현하고 반올림을 하고 싶을 때, round 함수를 사용하면 된다.

round(숫자, n)

 

파이썬의 반올림은 반올림 하려는 수가 올림, 내림했을 때 동일하게 차이가 나는 경우에는

짝수값으로 반올림한다.

round(0.5)의 값은 이상하게도 0이다...

0.5는 0에도 0.5 차이나고 1에도 0.5 차이가 나는 상황이다.

이때 똑같이 가깝다면 짝수를 반환하게 설계돼어 0을 반환한다.

 

부동소수점의 오차때문에 오류가 생길 수 있음...

부동소수점을 이용해 연산을 할때는 우리 예상과 다른 근접한 값이 들어가기 때문에 조심하자.

 

두번째 매개변수를 비우면 소수점 첫째자리에서 반올림을 한다.

소수점이 아닌 정수에서도 반올림을 할 수 있다.

바로, 두번째 매개변수에 음수를 입력하여 정수자리에 해당하는 곳에서 반올림이 가능하다.

예를 들어, round(12345678, -2) 라고 한다면

12345700이 나온다.

round(1234, -1)이라면 1230이 나온다.

- 두번째 매개변수 자리에서 반올림을 해준다고 생각하자.

 

# 기본 소수점 출력 자릿수 지정

n번째 자릿수까지 반올림한 값을 출력하고 싶다면 %.nf의 형태로 출력형식을 지정해주면 된다.

 

# 공백 채움 소수점 출력 자릿수 지정

해당 실수가 출력될 전체 공간의 크기를 미리 지정하여 출력하는 것도 가능하다.

만일, 전체 m칸 공간을 마련하여 남은 앞 칸에 공백을 채워 소수점 n자리까지 출력하고 싶다면

%m.nf 형태로 포맷팅 양식을 지정해주시면 된다.

소수점을 구분하는 .도 공간 1칸을 차지하는 것으로 간주한다.

 

# 0 채움 소수점 출력 자릿수 지정

위의 것과 같이 10칸의 공간의 크기를 지정하는 것은 동일하나,

남은 앞 칸에 공백 대신 0을 채워서 출력하고 싶다면

%0m.nf 형식으로 지정하자

 

# %f 형식은 형식을 정하는 부분과 출력할 부분으로 나누고 사이에 %를 넣어 구분한다.

예시. print("%.2f" % 실수)

이렇ㄱ ㅔ하면 소수점 아래 두 자리만 반올림해서 표시가 된다. 

round보다 이게 나은듯...

 

format형식으로도 할 수 있다.

format 함수의 기본 사용법은

"문자열 {} ~~~ {}".format(값1, 값2)

이렇게 하면 중괄호 안에 값1과 값2가 들어가게 된다.

여기서 앞에 있는 중괄호 안에 소수점을 몇 개 출력할 것인지를 알려주면 된다.

"문자열 {:.2f}".format(실수)

이렇게 사용하면 소수점 3번째 자리에서 반올림을 해서 2번째 자리까지 출력을 하게 된다.

 

 

'Language > Python' 카테고리의 다른 글

(numpy)배열 생성, Shape  (0) 2023.04.04
[Python] 알아두면 좋을 문법 정리  (0) 2023.03.12
파이썬 print로 디버깅을 쉽게 하는 법  (0) 2022.03.14
파이썬 Counter  (0) 2022.03.14
파이썬 슬라이싱  (0) 2022.03.13