我需要计算 JavaScript 中两个实数之间的中点(平均值)。数字的范围可以变化很大,通常在 10000 和 0.0001 之间。
天真的方法
(parseFloat(first) + parseFloat(second)) / 2
给了我不需要的精度错误,即
(1.1 + 0.1) / 2 = 0.6000000000000001
如何确保结果没有多余的小数位?我想,由于只有两个输入,因此结果最多需要比输入多一个小数位。所以,我需要:
1000 and 3000 to return 2000 (without decimal spaces)
1234.5678 and 2468.2468 to return 1851.4073
0.001 and 0.0001 to return 0.00055
10000 and 0.0001 to return 5000.00005
0.1 and 1.1 to return 0.6
澄清一下:我知道所有关于精度错误以及为什么会发生这种情况。我需要的是一个简单的解决方法,但我一直无法在 SO 上找到以前的解决方案。