해당 책을 참고하여 작성하였습니다.
파이썬에서 숫자 데이터를 변환하거나 반올림하는 것은 매우 흔한 작업입니다. 이를 쉽게 처리하기 위해 int(), float(), round()와 같은 함수들이 제공되며, 각 함수는 고유의 기능과 사용법을 가지고 있습니다.
1️⃣ int() 함수
int() 함수는 숫자나 문자열을 정수형(int)으로 변환하는 데 사용됩니다. 기본적으로 부동소수점 수를 정수로 변환할 때는 소수점 이하를 버립니다. 또한, 문자열에서 숫자를 추출해 정수로 변환할 수 있습니다.
📌 예제 1: 부동소수점을 정수로 변환
result = int(3.99)
print(result) # 결과: 3
여기서는 3.99라는 부동소수점 수를 3이라는 정수로 변환합니다. 소수점 이하 숫자는 버려집니다.
📌 예제 2: 소수점이 포함된 문자열을 정수로 변환
파이썬에서는 소수점이 포함된 문자열을 바로 정수로 변환할 수 없습니다. 먼저 문자열을 부동소수점 숫자로 변환한 후, 이를 정수로 변환해야 합니다.
number_str = "3.14"
result = int(float(number_str))
print(result) # 결과: 3
이 코드에서는 "3.14"라는 문자열을 먼저 float() 함수를 사용해 부동소수점 수로 변환한 후, int() 함수를 사용해 정수로 변환합니다.
2️⃣ float() 함수
float() 함수는 숫자나 문자열을 부동소수점 숫자(float)로 변환하는 데 사용됩니다. 이 함수는 정수나 문자열을 쉽게 부동소수점 숫자로 바꿀 수 있습니다.
📌 예제 1: 정수를 부동소수점 숫자로 변환
result = float(10)
print(result) # 결과: 10.0
정수 10이 부동소수점 숫자 10.0으로 변환됩니다.
📌 예제 2: 문자열을 부동소수점 숫자로 변환
result = float("3.14")
print(result) # 결과: 3.14
문자열 "3.14"가 부동소수점 숫자 3.14로 변환됩니다.
3️⃣ round() 함수
round() 함수는 주어진 숫자를 지정한 소수점 자리에서 반올림하는 데 사용됩니다. 소수점 자리수를 지정하지 않으면 기본적으로 소수점 첫째 자리에서 반올림합니다. 이때, 파이썬은 오사오입 방식을 사용합니다.
📌 round() 함수의 기본 구조
round() 함수는 다음과 같은 구조로 사용됩니다:
round(number, ndigits)
- number: 반올림할 대상 숫자입니다.
- ndigits (선택 사항): 반올림하고자 하는 소수점 자리수입니다. 이 값이 양수일 경우 소수점 이하의 자리를 반올림하고, 음수일 경우 소수점 왼쪽의 자리를 반올림합니다. 이 인수를 생략하면 기본적으로 소수점 첫째 자리에서 반올림됩니다.
📌 ① 기본 반올림
가장 기본적인 형태의 round() 함수는 소수점 첫째 자리에서 반올림합니다.
예제 1: 기본 반올림
result = round(3.14159)
print(result) # 결과: 3
이 예제에서는 3.14159라는 숫자를 소수점 첫째 자리에서 반올림하여 3이 됩니다.
📌 ② 소수점 이하 자리수 지정
round() 함수에 ndigits 인수를 사용하여 특정 소수점 자리수에서 반올림할 수 있습니다.
예제 2: 소수점 둘째 자리까지 표시
result = round(3.14159, 2)
print(result) # 결과: 3.14
예제 3: 소수점 셋째 자리까지 표시
result = round(3.14159, 3)
print(result) # 결과: 3.142
📌 ③ 자릿수에 음수를 사용한 반올림
round() 함수의 ndigits 인수에 음수를 입력하면, 반올림 위치를 소수점 왼쪽으로 이동할 수 있습니다. 이는 큰 숫자를 특정 자릿수에서 반올림할 때 유용합니다.
예제 4: 자릿수에 음수를 사용하여 백의 자리까지 표시
result = round(12345, -2)
print(result) # 결과: 12300
예제 5: 자릿수에 음수를 사용하여 천의 자리까지 표시
result = round(98765, -3)
print(result) # 결과: 99000
4️⃣ 파이썬의 반올림 방식: 오사오입
파이썬의 round() 함수는 오사오입방식을 사용합니다. 이는 정확히 5에서 반올림할 때, 앞 자리 수가 짝수면 버리고 홀수면 올리는 방식입니다.
result1 = round(2.5)
result2 = round(3.5)
print(result1) # 결과: 2 (2로 유지)
print(result2) # 결과: 4 (4로 반올림)
5️⃣ 부동소수점 수의 반올림
파이썬을 포함한 대부분의 프로그래밍 언어에서는 부동소수점 수를 표현할 때 완벽한 정밀도를 보장하지 않습니다. 이로 인해 소수점 계산에서 미세한 오차가 발생할 수 있으며, 이는 반올림 결과에도 영향을 미칠 수 있습니다.
result1 = round(0.55, 1)
print(result1) # 결과: 0.6
result2 = round(2.55, 1)
print(result2) # 결과: 2.6이 아닌 2.5
- round(0.55, 1)의 결과:
- 이 경우, 0.55를 소수점 첫째 자리에서 반올림하면 0.6이 됩니다. 이는 우리가 일반적으로 예상하는 결과입니다.
- round(2.55, 1)의 결과:
- 여기서 2.55를 소수점 첫째 자리에서 반올림하면, 예상대로라면 2.6이 나와야 할 것 같지만, 결과는 2.5가 됩니다.
- 이것은 파이썬의 부동소수점 연산에서 미세한 오차가 발생하기 때문입니다. 실제로 2.55는 컴퓨터 내부에서 정확히 표현되지 않기 때문에 2.549999...로 처리될 수 있으며, 이로 인해 반올림 결과가 2.5로 나오는 것입니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'백견이 불여일타 > Python' 카테고리의 다른 글
[Python] 파이썬 제곱 연산자(**) | 파이썬에서 거듭제곱 계산 방법 (0) | 2024.09.02 |
---|---|
[Python] 파이썬에서 몫과 나머지를 구하는 방법 | //와 % 연산자 (0) | 2024.09.02 |
[Python] 숫자 데이터의 연산자 | 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈) (0) | 2024.08.30 |
[Python] 숫자 데이터 표현 방법 | 정수와 실수(부동 소수점)정의와 예제, format() 활용하기 (0) | 2024.08.30 |
[Python] 문자열 공백 제거하기: strip(), lstrip(), rstrip() 사용법 (0) | 2024.08.30 |