如何在使用除法运算符时得到正确答案

时间:2014-02-20 23:36:32

标签: fortran

我使用fortran编写以下代码:

implicit none
real a,b
integer c
a=0.04
b=0.001
c=a/b

我得到的是39,我无法弄清楚为什么。当我将real设置为a和b时,它们是单精度的,这意味着它足够准确,可以使此操作得到40的正确答案。 谁能解释一下?

1 个答案:

答案 0 :(得分:1)

对于cinteger(默认类型),作业c=a/b相当于c=INT(a/b)INT使得一个略小于40的实数被映射到39。

你对

有什么看法?
print *, 0.04, 0.001, 0.04/0.001, INT(0.04/0.001)

?如果您真的想看到40,请在阅读popular link后考虑NINT