Adding Floating-Point Decimals for Fun and Profit
2 days ago
- 使用浮点数进行十进制计算会产生舍入误差,例如0.1 + 0.2不等于0.3。
- 对从0.01到1.00的倍数求和时的误差模式可视化,误差表现为过大、过小或正确。
- IEEE双精度浮点数有1个符号位、11个指数位和52个小数位,其值由指数和有效数决定。
- 浮点数加法涉及将精确和舍入到最接近的可表示数,这可能导致平局通过舍入到偶数有效数来解决。
- 打印浮点数遵循以下标准:往返精度、最短表示和最接近的可能值,从而产生像0.30000000000000004这样的输出。
- 计算和与精确和之间的差异最多为1 ulp(最后一位单位),这是从误差界限推导出来的。
- 误差函数由于使用ulp的模运算而显示周期性模式,回绕前的步数取决于值的范围。
- 像2Sum、Veltkamp拆分和Dekker乘积这样的无误差变换使得在浮点运算中能够精确计算误差。