javascript - toFixed 不适用于 Float32Array

标签 javascript

以下代码:

f = new Float32Array(1)
f[0] = 1.234567890
f[0] = f[0].toFixed(3)
console.log(f[0])

打印 1.2350000143051147 而不是 1.235。有人知道为什么吗? 如果我将 Float32Array 更改为 Float64Array,它将正常工作。

最佳答案

.toFixed() 函数返回一个字符串,而不是一个数字。当您将该字符串分配回数组时,它会转换回数字,并且固有的不准确性变得明显。使用 32 位二进制 float ,最接近十进制值 1.235 的值(显然)约为 1.2350000143051147。

二进制 浮点值不能“固定”,必然地固定到一定数量的小数小数 位。

关于javascript - toFixed 不适用于 Float32Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39307213/

相关文章:

javascript - 在 NodeJS 中导出非单例类的正确方法是什么?

java - 如何最大化 GWT 中的根面板大小?

java - GWT 的工具提示

javascript - 在 Chrome 控制台中修改 document.cookie 不起作用

javascript - 为什么我的 jQuery 不能在本地运行?

javascript - 如何使用 jQuery Validate 插件验证动态内容

javascript - 打破 'enter' 键与表单提交的关联

javascript - 仅从值中获取数字并计算文本字段的长度

javascript - 使用点符号或键时 JavaScript 如何查找值

javascript - Preg_replace 在 Content PHP 中获取图片链接