10 ** - 2和E-2之间的差异结果

时间:2012-12-14 18:30:39

标签: fortran90 gfortran fortran95

以下程序为100E-2打印1,为100*10**(-2)打印0,这意味着 运算符指数不适用于负**,这是正确的。 提前致谢

program testme

implicit none

print*,100E-2

print*,100*10**(-2)

end program

1 个答案:

答案 0 :(得分:2)

你会注意到第二个print语句打印0 - 没有小数pt等。例如,整数为零。这是因为10本身是一个整数字面值,并且正确地将其提高到负2幂则给出零;将它乘以整数100仍然得到整数零。

如果您改为使用

print*,100*10.**(-2)

你会得到你期望的答案。

100e-2不会出现此问题,因为用科学记数法表示的任何数字都是浮点数(real)字面值。