数字的双精度

时间:2013-10-17 05:02:31

标签: java language-agnostic programming-languages precision double-precision

如果我们假设变量xy可以双精度表示而没有错误。写x^2 - y^2还是仅(x + y)(x-y)

会更好吗?

我想到了这个问题,并认为x^2 - y^2应该更加准确,因为某些数字根源的不确定性。 (sqrt(numbers)

我真的很感激你的答案!!!

1 个答案:

答案 0 :(得分:4)

双倍的加法和减法是有问题的,只要它们的幅度差别很大。假设您有10位十进制数的精度,并希望

1234567890 + 0.05

然后添加错误,因为尾数不能代表额外的05.(实际上,64 IEEE双精度,精度更像15或16位十进制数字)

由此我们可以得出结论(x+y)(x-y)形式应该做得更好,因为在我们有一个大的x和一个小的(<1)y的情况下,x²和y²的幅度差将变得更均匀更大,在减法中得到准确的结果甚至更不可能。