我有2个数字,x和y,它们是已知的并且完全表示为浮点数.我想知道z = x - y是否总是精确的,或者是否可能发生舍入误差.对于简单的例子,很明显:
x = 0.75 = (1 + 0.5) * 2^-1
y = 0.5 = 1 * 2^-1
z = x - y = 0.25 = 0.5 * 2^-1 = 1 * 2^-2
Run Code Online (Sandbox Code Playgroud)
但是如果我有x和y使得所有有效数字都被使用并且它们具有相同的指数呢?我的直觉告诉我结果应该是准确的,但我希望看到某种证据.如果结果是否定的,它会有所不同吗?