본문 바로가기

언어/Python

[ 파이썬 / Python ] 정수와 부동소수점 사용하기

반응형

Python에서 정수(int)와 부동소수점(float)는 두 가지 주요 숫자 데이터 타입입니다. 이들 간의 연산은 몇 가지 중요한 차이점과 특징을 가지고 있습니다.

Python 실행 창

정수(int)

정수는 소수점이 없는 숫자입니다. Python의 정수는 크기에 제한이 없으며, 메모리가 허용하는 한 얼마든지 큰 숫자를 저장할 수 있습니다.

a = 10
b = 5
c = a + b  # 15
d = a * b  # 50
e = a // b  # 2 (정수 나눗셈)
f = a % b  # 0 (나머지 연산)
g = a ** b  # 100000 (거듭제곱)

부동소수점(float)

부동소수점은 소수점을 포함한 숫자입니다. 이는 실수를 표현하며, .을 사용하여 소수점을 나타냅니다. 부동소수점 숫자는 근사값을 가지며, 정밀도에 한계가 있습니다.

x = 10.5
y = 4.2
z = x + y  # 14.7
w = x * y  # 44.1
v = x / y  # 2.5 (부동소수점 나눗셈)
u = x - y  # 6.3

정수와 부동소수점 간의 연산

정수와 부동소수점 간의 연산을 수행할 때, 결과는 자동으로 부동소수점으로 변환됩니다.

a = 10
x = 4.2
result = a + x  # 14.2 (부동소수점으로 변환됨)

연산의 차이점 및 주의점

  1. 정수 나눗셈(//):
    • 정수 나눗셈은 나눗셈의 결과를 정수로 반환합니다.
    • 부동소수점 나눗셈은 항상 부동소수점 결과를 반환합니다.
    result_int = 7 // 2  # 3 (정수 나눗셈)
    result_float = 7 / 2  # 3.5 (부동소수점 나눗셈)
  2. 정밀도 문제:
    • 부동소수점 연산은 근사값을 사용하므로, 매우 작은 오차가 발생할 수 있습니다.
    result = 0.1 + 0.2  # 0.30000000000000004 (정밀도 문제)
  3. 타입 변환:
    • 정수를 부동소수점으로 변환하려면 float() 함수를 사용할 수 있습니다.
    • 부동소수점을 정수로 변환하려면 int() 함수를 사용할 수 있습니다.
    a = 10
    x = 4.2
    a_to_float = float(a)  # 10.0
    x_to_int = int(x)  # 4 (소수점 이하 버림)
  4. 모듈로 연산:
    • 정수와 부동소수점 모두에서 사용할 수 있습니다.
    • 결과는 연산에 따라 달라집니다.
    result_int_mod = 10 % 3  # 1
    result_float_mod = 10.5 % 3  # 1.5

결론

정수와 부동소수점은 Python에서 다양한 계산에 사용되며, 각기 다른 특성과 제한을 가지고 있습니다. 연산 시 이들 특성을 이해하고 사용하는 것이 중요합니다. 부동소수점의 경우, 근사값으로 계산되므로 정밀도가 중요한 경우 특별히 주의해야 합니다.

반응형