백견이 불여일타/Python

[Python] 파이썬 숫자 변환과 반올림 | int(), float(), round() 사용법과 예제

jhy_2023 2024. 9. 2. 17:04
728x90
반응형


해당 책을 참고하여 작성하였습니다.

파이썬에서 숫자 데이터를 변환하거나 반올림하는 것은 매우 흔한 작업입니다. 이를 쉽게 처리하기 위해 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로 변환됩니다.

728x90


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로 나오는 것입니다.

 

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형