我试图显示IEEE 754小数的表示形式。我看到过各种线程说这些数字已经在 IEEE 754 双精度中,但我似乎无法让它们看起来正确。
例如,如果我在这里输入 0.07 https://www.h-schmidt.net/FloatConverter/IEEE754.html 我会得到 0.070000000298。我正在尝试在没有jquery的情况下在javascript中复制它。
我需要它能够显示这样的东西:
0.07 = 0.070000000298023223876953125
0.0245 = 0.02449999935925006866455078125
0.5 = 0.5000000000000000000000000000
如果有人有建议,将不胜感激!谢谢
编辑:该工具使用 32 位浮点表示
在javascript中,十进制数以IEEE754双精度(64位)表示。
https://www.h-schmidt.net/FloatConverter/IEEE754.html 适用于IEEE754单精度(32 位)数字。
要以单精度转换数字IEEE754可以使用 Float32Array:
const foo = 0.07
const foo32bits = Float32Array.from([foo])[0]
// foo === 0.07
// foo32bits = 0.07000000029802322
您还可以使用Math.fround()
:
Math.fround(0.07) // 0.07000000029802322