Swift에서 Double 및 Float의 최대값을 찾는 방법
현재 학습 Swift, 다양한 종류의 정수에 대한 최대값과 최소값을 찾는 방법이 있습니다.Int.max
그리고.Int.min
.
Double과 Float의 최대값을 찾을 수 있는 방법이 있습니까?그리고 이런 질문은 어떤 서류를 참고해야 하나요?저는 현재 애플의 스위프트 프로그래밍 언어를 읽고 있습니다.
Swift 3+ 기준으로 다음을 사용해야 합니다.
CGFloat.greatestFiniteMagnitude
Double.greatestFiniteMagnitude
Float.greatestFiniteMagnitude
없는 동안에Double.max
C에 정의되어 있습니다.float.h
스위프트에서 액세스할 수 있는 헤더.import Darwin
.
import Darwin
let fmax = FLT_MAX
let dmax = DBL_MAX
이것들은 대충3.4 * 10^38
그리고.1.79 * 10^308
각각 다음과 같다.
그러나 부동 소수점 번호는 그리 간단하지 않습니다( 부동 소수점 번호는 결코 간단하지 않습니다).이렇게 큰 숫자를 유지하면 매우 작은 숫자로 정밀도를 잃는 것과 유사한 방식으로 정밀도를 잃게 되므로 다음과 같이 처리할 수:
let d = DBL_MAX
let e = d - 1.0
let diff = d - e
diff == 0.0 // true
let maxPlusOne = DBL_MAX + 1
maxPlusOne == d // true
let inf = DBL_MAX * 2
// perhaps infinity is the “maximum”
inf == Double.infinity // true
따라서 이러한 한계를 극복할 수 있는 계산을 시작하기 전에 부동소수점에 대해 자세히 읽어보아야 합니다.여기와 여기가 아마도 좋은 시작일 것입니다.
AV의 대답은 괜찮지만, 저는 그 매크로들이 기억하기 어렵고 약간 분명하지 않다고 생각해서 결국 만들었습니다.Double.MIN
그리고 친구들의 일:
extension Double {
static var MIN = -DBL_MAX
static var MAX_NEG = -DBL_MIN
static var MIN_POS = DBL_MIN
static var MAX = DBL_MAX
}
소문자 min과 max를 사용하지 마십시오. 이러한 기호는 Swift 3에서 사용됩니다.
그냥 쓰기
let mxFloat = MAXFLOAT
스위프트에서 플로트의 최대값을 얻을 수 있습니다.
또한.CGFloat.infinity
,Double.infinity
아니면 그냥.infinity
이러한 상황에서 유용할 수 있습니다.
swift 5와 함께 작동합니다.
public extension Double {
/// Max double value.
static var max: Double {
return Double(greatestFiniteMagnitude)
}
/// Min double value.
static var min: Double {
return Double(-greatestFiniteMagnitude)
}
}
언급URL : https://stackoverflow.com/questions/28525484/how-to-find-max-value-for-double-and-float-in-swift
'programing' 카테고리의 다른 글
jQuery를 사용하여 드롭다운 옵션을 선택하는 방법은 무엇입니까? (0) | 2023.09.02 |
---|---|
MySQL 기본 ID UUID 설정 (0) | 2023.08.28 |
파일 선택 시 이벤트를 발생시키는 방법 (0) | 2023.08.28 |
Android L에서는 작업 표시줄 탐색 모드가 더 이상 사용되지 않습니다. (0) | 2023.08.28 |
Git가 내 파일이 변경된 것을 인식하지 못하는 이유는 무엇입니까? 따라서 Git add가 작동하지 않습니다. (0) | 2023.08.28 |