作者GP03 (FM2让我重拾摄影的乐趣)
看板Fortran
标题[问题] 关於MOD这个运算函数
时间Wed Mar 11 22:54:39 2009
以下是我写的一个测试用的程式
program Console1
IMPLICIT REAL*8 (A-H,O-Z)
A=31.6
B=0.4
write(*,542) DMOD(A,B)
PAUSE
542 FORMAT(F5.3)
END
照理说输出的值应该是0才对,为甚麽会变成0.4?
原本以为是IVF10的关系但用VF5.0得到的结果也是一样是0.4
是哪边出了问题呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.198.238
1F:推 jsb:用 gfortran 也是这样。基本上这种问题都得加上个精确度条件。 03/11 23:58
2F:→ jsb:例如 if (dmod(a,b)-b.lt.0.000001) write (*,542) 0. 03/12 00:00
4F:→ jsb:ch1-8.html#04 (麻烦自己动手连)。 03/12 00:06
5F:→ jsb:简单的说就是 mod() 是用来计算"整数除以整数"的余数用的。 03/12 00:07
7F:→ GP03:感谢 已解决 03/14 15:32