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

Fortran 使用除法运算符时如何得到正确答案,fortran,Fortran,我使用fortran编写了以下代码: implicit none real a,b integer c a=0.04 b=0.001 c=a/b 我得到的是39,我不知道为什么。当我将real设置为a和b时,它们是单精度的,这意味着它的精度足以让这个操作得到40的正确答案。 任何人都可以解释?对于c一个integer(默认类型)赋值c=a/b相当于c=INT(a/b)INT是这样的,一个稍微小于40的实数被映射到39 你看到了什么 print *, 0.04, 0.001, 0.04/0.00

我使用fortran编写了以下代码:

implicit none
real a,b
integer c
a=0.04
b=0.001
c=a/b
我得到的是39,我不知道为什么。当我将real设置为a和b时,它们是单精度的,这意味着它的精度足以让这个操作得到40的正确答案。
任何人都可以解释?

对于
c
一个
integer
(默认类型)赋值
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,那么在阅读.< /P>后,考虑<代码> NITC。