1

我们目前正在试验浮点数,并遇到了 Fortran 中的一个程序,我们无法弄清楚会发生什么。

program test
a=0.1
print*, a * .1 * 10.
print*, .1 * a * 10.
print*, .1 * 10. * a
end program test

问题:为什么会产生不同的结果?

0.100000009  
0.100000009  
0.100000001

我们认为这可能与浮点数(尾数、指数等)的表示模型以及计算机如何对数字进行四舍五入有关,但我们不确定。

有人可以详细解释这是如何工作的吗?

4

0 回答 0