gpt4 book ai didi

Javascript Float32Array 怪异

转载 作者:行者123 更新时间:2023-11-28 21:11:18 27 4
gpt4 key购买 nike

如果我运行这段代码:

var a = new Float32Array(3);
a[0] = 1;
a[1] = 1.1;
a[2] = 1.00001;

我得到了a的结果:

[1, 1.100000023841858, 1.0000100135803223]

为什么Float32Array会这样影响我的数字?另外,我如何知道哪些数字可以准确地表示为 32 位 float ?

最佳答案

32 位 float 只有 7 位有效数字。将 float 存储为特定数字的最接近可能的近似值是正常的。

32 位 float 根本无法准确存储值 1.1,它可以存储的最接近的值是 1.100000023841858

对于七位有效数字,数字仍然准确,即1.100000

通常,当显示 float 时,它会根据它可以准确存储的有效位数进行舍入。您用来显示数字的内容显然不会进行这种舍入,这就是为什么您会看到数字精度的限制。

假设那些 32 位 float 使用 IIIE 754标准,它们可以表示 1.18 * 10-38 到 3.4 * 1038 范围内的值。

关于Javascript Float32Array 怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com