初始化器
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:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。