我的C ++程序计算一些浮点数x并打印出来:
cout << x;
对我来说重要的是,所有计算机的输出都应相同。由于“全部”的含义非常广泛,因此我们将重点关注以下内容:
上述所有组合的输出是否保证相同?
如果没有,我可以通过降低精度来保证相同的输出,例如:
cout << setprecision(4) << x;
?如果没有,我该怎么办才能在机器之间获得一致的输出?
答案 0 :(得分:2)
上述所有组合的输出是否保证相同?
否。
C ++标准几乎不能保证浮点表示。
我可以通过降低精度来保证输出相同吗,例如:
cout << setprecision(4) << x;
否。
如果计算的准确结果仅在舍入方向的边界处,则计算之间的任意小差异都可能改变结果。四舍五入会放大计算之间的差异。
如果没有,我该怎么办才能在机器之间获得一致的输出?