NaN을 확인하는 방법

float('nan')이 에러를 내질 않고 float타입 nan을 return해서 이 값으로 뭘 처리하려고 하면 다 이상한 결과가 뜹니다.

조건문으로 'nan'을 확인해주려고 하는데 어떻게 해야 될까요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    1. math.isnan() - 2.6이상

    math.isnan()은 float이 NaN인지 아닌지 확인해 줍니다.

    import math
    x=float('nan')
    math.isnan(x)
    

    2. numpy.isnan(float) - 2.5이상

    math.isnan()과 동일하게 float이 NaN인지 아닌지 확인해 줍니다.

    import numpy
    x=float('nan')
    numpy.isnan(x)
    

    3. 그 미만이라면 - 사용자가 직접 정의

    IEEE standard에 따르면 NaN valueNaN value끼리 비교하면 항상 false라고 합니다. 이를 이용해서 함수를 정의하면

    def isNaN(num):
        return num != num
    x=float('nan')
    isNaN(x)
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.