初始化器
init(sign:
init(sign:exponent:significand:)
从给定的符号、指数和有效数创建一个新值。
声明
init(
sign: FloatingPointSign,
exponent: Int,
significand: Double
)
参数
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 Double init(signOf:magnitudeOf:)用法及代码示例
- Swift Double init(nan:signaling:)用法及代码示例
- Swift Double init(_:)用法及代码示例
- Swift Double init(exactly:)用法及代码示例
- Swift Double init(integerLiteral:)用法及代码示例
- Swift Double init(floatLiteral:)用法及代码示例
- Swift Double infinity用法及代码示例
- Swift Double isZero用法及代码示例
- Swift Double isNaN用法及代码示例
- Swift Double isTotallyOrdered(belowOrEqualTo:)用法及代码示例
- Swift Double isEqual(to:)用法及代码示例
- Swift Double remainder(dividingBy:)用法及代码示例
- Swift Double significand用法及代码示例
- Swift Double truncatingRemainder(dividingBy:)用法及代码示例
- Swift Double -(_:_:)用法及代码示例
- Swift Double /(_:_:)用法及代码示例
- Swift Double ...(_:_:)用法及代码示例
- Swift Double -(_:)用法及代码示例
- Swift Double binade用法及代码示例
- Swift Double ...(_:)用法及代码示例
- Swift Double pi用法及代码示例
- Swift Double maximum(_:_:)用法及代码示例
- Swift Double negate()用法及代码示例
- Swift Double +(_:_:)用法及代码示例
- Swift Double formRemainder(dividingBy:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Double init(sign:exponent:significand:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。