初始化器
init(sign:
init(sign:exponent:significand:)
從給定的符號、指數和有效數創建一個新值。
聲明
init(
sign: FloatingPointSign,
exponent: Int,
significand: Float80
)
參數
sign
用於新值的符號。
exponent
新值的指數。
significand
新值的有效數字。
詳述
以下示例使用此初始化程序創建一個新的 Double
實例。 Double
是一種二進製浮點類型,其基數為 2
。
let x = Double(sign: .plus, exponent: -2, significand: 1.5)
// x == 0.375
此初始化程序等效於以下計算,其中 **
是求冪,就像通過單個正確舍入的浮點運算一樣計算:
let sign: FloatingPointSign = .plus
let exponent = -2
let significand = 1.5
let y = (sign == .minus ? -1 : 1) * significand * Double.radix ** exponent
// y == 0.375
與任何基本操作一樣,如果此值超出類型的可表示範圍,則會發生上溢或下溢,並可能導致零、次正常值或無窮大。此外,還有另外兩種極端情況:
-
如果您傳遞給
significand
的值為零或無限,則無論exponent
的值如何,結果都是零或無限。 -
如果傳遞給
significand
的值為 NaN,則結果為 NaN。
對於 F
類型的任何浮點值 x
,以下結果等於 x
,區別在於如果 x
采用非規範編碼,則結果是規範化的:
let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
此初始化程序實現由 IEEE 754 specification 定義的 scaleB
操作。
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相關用法
- Swift Float80 init(signOf:magnitudeOf:)用法及代碼示例
- Swift Float80 init(_:)用法及代碼示例
- Swift Float80 init(nan:signaling:)用法及代碼示例
- Swift Float80 init(integerLiteral:)用法及代碼示例
- Swift Float80 init(floatLiteral:)用法及代碼示例
- Swift Float80 init(exactly:)用法及代碼示例
- Swift Float80 infinity用法及代碼示例
- Swift Float80 isTotallyOrdered(belowOrEqualTo:)用法及代碼示例
- Swift Float80 isNaN用法及代碼示例
- Swift Float80 isZero用法及代碼示例
- Swift Float80 isEqual(to:)用法及代碼示例
- Swift Float80 /(_:_:)用法及代碼示例
- Swift Float80 maximum(_:_:)用法及代碼示例
- Swift Float80 exponent用法及代碼示例
- Swift Float80 formRemainder(dividingBy:)用法及代碼示例
- Swift Float80 ...(_:_:)用法及代碼示例
- Swift Float80 truncatingRemainder(dividingBy:)用法及代碼示例
- Swift Float80 radix用法及代碼示例
- Swift Float80 squareRoot()用法及代碼示例
- Swift Float80 +(_:_:)用法及代碼示例
- Swift Float80 ...(_:)用法及代碼示例
- Swift Float80 negate()用法及代碼示例
- Swift Float80 magnitude用法及代碼示例
- Swift Float80 -(_:)用法及代碼示例
- Swift Float80 ..<(_:_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Float80 init(sign:exponent:significand:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。