개발 이야기/TIL
[Python] Overflow와 type casting
혁진
2025. 5. 1. 13:01
term1 = t*(t-1)*(n-t)*(n-t-1) / (n*(n-1)*(n-2)*(n-3))
~~~~~~~~~~~~~^^~~~~
FloatingPointError: overflow encountered in scalar multipl
Python으로 수식 계산 중 다음 부분에서 FlaotingPointError와 다른 항들에서도 Overflow발생.
원인: type
t랑 n은 정수형이었음. 즉 다음 수식 계산시 곱셈부분의 범위가 커졌고(n=1000 t도 1000정도 되는 상황)
따라서 연산에서 wrap-aorund가 발생한것 같음.
따라서 계산량이 많을 때 + 위 상황은 float 결과를 반환하는 상황임으로 Float으로 type casting하고 연산해야함.
해결: float type casting
t = float(t)
n = float(n)
R1 = float(R1)
R2 = float(R2)
nE = float(nE)