在运行程序时,我们总希望多次运行的结果,是完全一致,甚至在不同的机器与不同的OS中,程序运行的结果每一位都完全相同. 事实上,程序往往很难保证做到这一点. 为什么呢? 我们先看一个简单的例子: 当程序使用单精度或者双精度的浮点数时, 浮点数有一定的精度的限制. 单精度的浮点数,使用23位二进制表示的尾数. 双精度浮点数,使用52位的二进制(http://en.wikipedia.org/wiki/IEEE_754-1985). 如果,程序中计算下面的表达式: double d1,d2,d3,d4…