2016-07-26 4 views
0

이중 형태로 10^N을 반환하는 powerOfTen 함수를 작성했습니다.이중 값이 오버플로되는지 확인하는 방법

값이 과도하게 통과되었는지 어떻게 확인할 수 있습니까? 내가 DBL_MAX라는 하나 개의 상수가있다 displayLabel.text = String(format:"%.0f", result)

func powerOfTen(exponent: Double) -> Double { 
    return pow(10, exponent) 
} 

inline

답변

-2

와 라벨에 그것을 attched하려고 할 때

현재는 Inf 표시됩니다, 이것은 이중의 최대 값은 스위프트는 1.79769313486232e + 308과 같습니다. 이것을 사용하면 아래와 같이 선택적 결과를 반환 할 수 있습니다.

func powerOfTen(exponent: Double) -> Double? { 
    let ans = pow(10, exponent) 
    if ans <= DBL_MAX { 
     return ans 
    } 
    return nil 
} 
+0

Err, no. DBL_MAX보다 두 배 큰 것이 있다면 DBL_MAX가 너무 작을 것입니다. 부동 소수점 오버플로는 부호가있는 무한대를 생성합니다. – EJP

+0

나는 그것을 얻지 못했다. –

+0

나는 할 수 있다고 생각하지 않는다. 나는 내가 할 수있는 한 그것을 분명하게 말했다. 코드를 테스트 할 때 주장한대로 동작하지 않습니다. – EJP

관련 문제