2025-11-20 05:23:49
js里0.1加0.2不等于0.3因为计算机用二进制存储小数而二进制无法精确表示十进制小数比如0.1的二进制是无限循环的存储时只能保留有限位数相加后产生微小误差
二进制表示下0.1等于0.11...0.2等于0.110011...相加后得到0....而0.3的二进制是0....计算机存储时只能保留有限位数所以显示为0.000004这个误差是正常的比如用64位浮点数计算时误差小于2的-53次方约等于5.6e-16所以结果接近但不完全等于0.3
js里0.1加0.2不等于0.3因为浮点数精度问题二进制无法精确表示十进制小数比如0.1的二进制是无限循环的存储时只能保留有限位数相加后产生微小误差二进制表示下0.1等于0.11...0.2等于0.110011...相加后得到0....而0.3的二进制是0....计算机存储时只能保留有限位数所以显示为0.000004这个误差是正常的比如用64位浮点数计算时误差小于2的-53次方约等于5.6e-16所以结果接近但不完全等于0.3
本题链接: