當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Float80 init(sign:exponent:significand:)用法及代碼示例


初始化器

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+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Float80 init(sign:exponent:significand:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。