boost-devs / peer-session

🚀 부스트캠프 AI Tech 1기 U-Stage 4조 피어 세션 자료/질문 모음 (archived)
8 stars 2 forks source link

[후미] 부동 소수점 처리 #22

Closed opijae closed 3 years ago

opijae commented 3 years ago

🙌 질문자


❓ 질문 내용

image

x=(1,1)
y=(2,2)
v=np.inner(x,y)/(np.linalg.norm(x)*np.linalg.norm(y))
print(v) # -> 0.9999999999999999
theta=np.arccos(v)
print(theta) # -> 2.1073424255447017e-08
print(theta==0) # -> False

구하려 했는데 부동소수점 때문에 0.0으로 딱 안나오네요 이럴땐 어떻게 처리해야될까요? x=(1,1) y=(3,3)일 때는 내적은 1.0, 각도는 0.0라디안 True로 잘나옵니다.


CoodingPenguin commented 3 years ago

부동소수점을 소수점을 근사한거여서 웬만하면 ==연산으로 비교하는 걸 권장하지 않더라고요.

지금 든 생각으로는 직접 허용 에러 범위를 정해서 검사하는 방법 밖에 없을 것 같습니다ㅠㅠ

error = 0.0000001
if abs(theta-0) < error:
    return True
else
    return False
opijae commented 3 years ago

오 그러겠네요! 감사합니다.!!