gpt4 book ai didi

ios - pow() 行为与 Float 和 Double 不同

转载 作者:行者123 更新时间:2023-11-28 10:09:52 26 4
gpt4 key购买 nike

pow() 我遇到了一个奇怪的问题。请检查以下功能

 let r = 8.5/1200
let n = ((5*12.0)+1)

let pp = (pow(Float(1 + r), Float(n)))
debugPrint(pp) // 1.53811562

let pq = (pow((1 + r), n))
debugPrint(pq) // 1.5381189771003985

此处 pow(Float, Float) 函数返回最大值。 Floatpow(Double , Double) 的 8 小数返回 Double 的 16 小数的值。

为什么会这样,谁能解释一下?

Float 值是否有可能得到最多 16 个小数?

Note: You can copy and paste it in playground to see result.

提前致谢。

最佳答案

Float 使用 IEEE 754 four byte single precision number . 24 位分配给有效数,8 位分配给指数。 24位精度,可以表示7位多一点的精度

Double - 这是 Swift 的默认浮点格式,使用 IEEE double 八字节数。尾数使用 53 位,指数使用 11 位。具有 53 位精度,它可以表示不到 16 位十进制数字的精度。

pq 以 16 位打印的原因是编译器默认将参数类型推断为 Double

And is it possible to get upto 16 fractional number for Float value?

没有。精度不够。

关于ios - pow() 行为与 Float 和 Double 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320107/

26 4 0
文章推荐: ios - 在 ARKit 中为 SCNText 设置动画
文章推荐: javascript - 复选框和