본문 바로가기
Error(Exception)/ERROR-PYTHON

[python] FloatingPointError

by 조조군 2024. 11. 20.
반응형

FloatingPointError

  1. 오류 설명
    FloatingPointError는 Python에서 부동소수점 연산 중 예외적인 상황이 발생할 때 발생하는 오류입니다. 이 오류는 기본적으로 활성화되지 않으며, 명시적으로 Python의 numpy 라이브러리나 fpectl과 같은 모듈에서 부동소수점 오류를 감지하도록 설정해야 발생합니다. 예외적으로 ZeroDivisionErrorOverflowError가 발생하지 않는 대신 FloatingPointError를 유발할 수 있습니다.

  1. 오류 예시위 코드에서 np.seterr(all='raise')로 부동소수점 오류를 활성화하면, 0으로 나눌 때 FloatingPointError가 발생합니다.
  2. import numpy as np # 부동소수점 오류 감지 활성화 np.seterr(all='raise') # 나누기 연산에서 부동소수점 오류 발생 result = np.divide(1.0, 0.0)

  1. 오류 해결책
    • 오류를 방지하려면 np.seterr를 사용하지 않거나 기본값으로 설정합니다.
    • 부동소수점 연산이 안전하게 실행되도록 사전 조건을 확인합니다(예: 분모가 0인지 확인).
    • 부동소수점 연산 중 예외가 발생하지 않도록 연산 과정을 설계합니다.

  1. 오류 예제 코드 및 해결 코드
    import numpy as np
    
    # 부동소수점 오류 감지 활성화
    np.seterr(all='raise')
    
    try:
        # 0으로 나누기 연산
        result = np.divide(1.0, 0.0)
    except FloatingPointError as e:
        print("FloatingPointError 발생:", e)
    해결 코드 예제설명:
    • try-except 블록을 사용하여 부동소수점 오류를 처리합니다.
    • 연산 전에 denominator가 0인지 확인하여 사전에 방지합니다.
  2. import numpy as np # 부동소수점 오류 감지 활성화 np.seterr(all='raise') try: denominator = 0.0 if denominator == 0.0: raise ValueError("분모가 0입니다.") result = np.divide(1.0, denominator) except FloatingPointError as e: print("FloatingPointError 발생:", e) except ValueError as e: print("ValueError 발생:", e) else: print("결과:", result)
  3. 오류 코드 예제
반응형

'Error(Exception) > ERROR-PYTHON' 카테고리의 다른 글

[python] ImportError  (0) 2024.11.22
[python] GeneratorExit  (2) 2024.11.21
[python] EOFError  (0) 2024.11.19
[python] PythonFinalizationError  (0) 2024.11.18
[python] AttributeError  (0) 2024.11.18

댓글