当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift FloatingPoint init(sign:exponent:significand:)用法及代码示例


初始化器

init(sign:exponent:significand:)

从给定的符号、指数和有效数创建一个新值。

必需的。

声明

init(
    sign: FloatingPointSign,
    exponent: Self.Exponent,
    significand: Self
)

参数

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大神的英文原创作品 FloatingPoint init(sign:exponent:significand:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。