최대 1 분 소요

modf

math.modf() 함수는 입력값을 정수와 소수 부분으로 분리해 반환한다.

from math import modf

a = 3.5
b = 3.0
c = 3.14

print(modf(a)) # (0.5, 3.0)
print(modf(b)) # (0.0, 3.0)
print(modf(c)) # (0.14000000000000012, 3.0)

print(modf(a)[0] == 0) # False
print(modf(b)[0] == 0) # True

근데 위 예제에서 cmodf()를 적용한 경우, 소수가 0.14가 아니라 유달리 길다.
이는 부동소수점 문제이다.

부동소수점은 10진법 수를 2진법 체계에서 정확히 반영하지 못해 생기는 문제이다.
modf()함수는 부동소수점의 값을 그대로 반환한다.

참고



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: