Appearance
浮点数(Floating Point)
浮点数是计算机表示小数的一种方式。它使用“符号位 + 指数 + 尾数”的结构来近似表示实数。
为什么会有误差
很多十进制小数在二进制里是无限循环的,例如:
0.1 -> 0.0001100110011... (二进制循环)因此在计算机里只能近似存储。
javascript
0.1 + 0.2; // 0.30000000000000004IEEE 754(简述)
现代计算机大多使用 IEEE 754 标准:
- 单精度:32 位
- 双精度:64 位(JS 的 Number)
实用建议
- 不要用
==直接比较浮点数。 - 用“误差范围”判断:
javascript
function nearlyEqual(a, b, eps = 1e-10) {
return Math.abs(a - b) < eps;
}进一步阅读
浮点数问题常见于金融计算、科学计算。遇到精度问题时,请优先用整数或专门的数值库。