15.4 浮点计算程序表现奇怪, 在不同的机器上给出不同的结果。
首先阅读问题 15.2.
如果问题并不是那么简单, 那么回想一下, 电脑一般都是用一种浮点的格式来近似 的模拟实数的运算, 注意是近似, 不是完全。下溢、误差的累积和其它非常规性是 常遇到的麻烦。
不要假设浮点运算结果是精确的, 特别是别假设两个浮点值可以进行等价比较。也 不要随意的引入 ``模糊因素"; 参见问题 15.5。
这并不是 C 特有的问题, 其它电脑语言有一样的问题。浮点的某些方面被通常 定义为 ``中央处理器 (CPU) 是这样做的" (参见问题 12.34), 否则在一 个没有 ``正确" 浮点模型的处理器上, 编译器要被迫做代价非凡的仿真。
本文不打算列举在处理浮点运算上的潜在难点和合适的做法。一本好的有关数字 编程的书能涵盖基本的知识。参见下面的参考资料。
参考资料: [K&P, Sec. 6 pp. 115-8]; [Knuth, Volume 2 chapter 4]; [Goldberg]。