我们正在尝试使用浮点数并在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
我们认为它可能与浮动数字的表示模型(尾数,指数,...)以及计算机如何对数字进行舍入有关,但我们不确定。
有人可以详细解释这是如何运作的吗?