2
如果我们假设变量x
和y
可以用双精度表示而没有错误。写x^2 - y^2
还是(x + y)(x-y)
会更好?数字的双精度
我想到了这个问题,并认为x^2 - y^2
应该更准确,因为某些数字根源的不和谐性。 (sqrt(numbers)
)
我真的很感谢你的回答!
如果我们假设变量x
和y
可以用双精度表示而没有错误。写x^2 - y^2
还是(x + y)(x-y)
会更好?数字的双精度
我想到了这个问题,并认为x^2 - y^2
应该更准确,因为某些数字根源的不和谐性。 (sqrt(numbers)
)
我真的很感谢你的回答!
加倍和加倍减法是有问题的,只要它们的幅度差别很大。假设你有10位十进制数字的精度,并希望
1234567890 + 0.05
那么除了得到它错了,因为尾数不能代表另外05.(实际上,64 IEEE双打,精度更像是15或16张十进制数)
由此我们可以conlude表单(x+y)(x-y)
应该做的更好,因为我们有一个大x和小(< 1)Y,X 2的大小相同的情况下和Y 2将变得更更大,减法的准确结果甚至不太可能。
请看看这篇文章:http://dhruba.name/2012/09/01/performance-pattern-multiplication-is-20x-faster-than-math-pow/它比较Math.pow的性能与乘以 –
@AlexAdas问题不在于性能,而在于准确性。 – Kayaman