用法一
init(_:)
聲明
init(_ other: Double)
參數
other
用於新實例的值。
詳述
如有必要,other
的值會四舍五入為可表示的值。作為 other
傳遞的 NaN 會導致另一個 NaN,而信號 NaN 值將轉換為安靜的 NaN。
let x: Double = 21.25
let y = Float80(x)
// y == 21.25
let z = Float80(Double.nan)
// z.isNaN == true
可用版本
用法二
init(_:)
聲明
init(_ other: Float)
參數
other
用於新實例的值。
詳述
如有必要,other
的值會四舍五入為可表示的值。作為 other
傳遞的 NaN 會導致另一個 NaN,而信號 NaN 值將轉換為安靜的 NaN。
let x: Float = 21.25
let y = Float80(x)
// y == 21.25
let z = Float80(Float.nan)
// z.isNaN == true
可用版本
用法三
init(_:)
聲明
init(_ other: Float80)
參數
other
用於新實例的值。
詳述
other
的值完全由新實例表示。作為 other
傳遞的 NaN 會導致另一個 NaN,而信號 NaN 值將轉換為安靜的 NaN。
let x: Float80 = 21.25
let y = Float80(x)
// y == 21.25
let z = Float80(Float80.nan)
// z.isNaN == true
可用版本
用法四
init(_:)
聲明
init?<S>(_ text: S) where S : StringProtocol
參數
text
要轉換為
Float80?
實例的輸入字符串。
詳述
作為text
傳遞的字符串可以表示十進製或十六進製格式的實數,也可以是表示無窮大或NaN (“not a number”) 的特殊格式。如果 text
不是可識別的格式,則可選初始化程序將失敗並返回 nil
。
text
字符串由可選的加號或減號字符( +
或 -
)組成,後跟以下之一:
-
decimal string
包含一個有效數字,該有效數字由一個或多個可能包含小數點的十進製數字組成:let c = Float80("-1.0") // c == -1.0 let d = Float80("28.375") // d == 28.375
十進製字符串還可以在有效數字後麵包含一個指數,指示有效數字應乘以的 10 的冪。如果包含,指數由單個字符分隔,
e
或E
,並由可選的加號或減號字符和十進製數字序列組成。let e = Float80("2837.5e-2") // e == 28.375
-
hexadecimal string
包含由0X
或0x
組成的有效數字,後跟一個或多個可能包含小數點的十六進製數字。let f = Float80("0x1c.6") // f == 28.375
十六進製字符串還可以包含一個指數,指示 2 的冪,有效數字應乘以該指數。如果包含,指數由單個字符分隔,
p
或P
,並由可選的加號或減號字符和十進製數字序列組成。let g = Float80("0x1.c6p4") // g == 28.375
-
輸入字符串
"inf"
或"infinity"
(不區分大小寫)將轉換為無限結果:let i = Float80("inf") // i == Float80.infinity let j = Float80("-Infinity") // j == -Float80.infinity
-
"nan"
(不區分大小寫)的輸入字符串被轉換為NaN
值:let n = Float80("-nan") // n?.isNaN == true // n?.sign == .minus
NaN 字符串還可以在
"nan"
關鍵字後麵的括號中包含有效負載。有效負載由十進製數字序列或字符0X
或0x
後跟十六進製數字序列組成。如果有效負載包含任何其他字符,則將其忽略。如果有效載荷的值大於可以存儲為Float80.nan
的有效載荷的值,則使用最低有效位。let p = Float80("nan(0x10)") // p?.isNaN == true // String(p!) == "nan(0x10)"
除上述格式之外的任何其他格式的字符串或包含其他字符的字符串都會產生 nil
值。例如,以下轉換導致 nil
:
Float80(" 5.0") // Includes whitespace
Float80("±2.0") // Invalid character
Float80("0x1.25e4") // Incorrect exponent format
使用 IEEE 754 roundTiesToEven(默認)舍入屬性將十進製或十六進製字符串轉換為 Float80
實例。絕對值小於 Float80.leastNonzeroMagnitude
的值將四舍五入到正負零。絕對值大於 Float80.greatestFiniteMagnitude
的值將四舍五入到正無窮大或負無窮大。
let y = Float80("1.23e-9999")
// y == 0.0
// y?.sign == .plus
let z = Float80("-7.89e-7206")
// z == -0.0
// z?.sign == .minus
let r = Float80("1.23e17802")
// r == Float80.infinity
let s = Float80("-7.89e7206")
// s == Float80.-infinity
可用版本
相關用法
- Swift Float80 init(nan:signaling:)用法及代碼示例
- Swift Float80 init(integerLiteral:)用法及代碼示例
- Swift Float80 init(floatLiteral:)用法及代碼示例
- Swift Float80 init(exactly:)用法及代碼示例
- Swift Float80 init(signOf:magnitudeOf:)用法及代碼示例
- Swift Float80 init(sign:exponent:significand:)用法及代碼示例
- 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(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。