首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fortran MOD和MODULO给出了同样的结果

Fortran MOD和MODULO给出了同样的结果
EN

Stack Overflow用户
提问于 2018-11-28 21:37:43
回答 1查看 6.6K关注 0票数 6

gfortran --version == GNU编译(国产GCC 8.2.0) 8.2.0

当我编写下面的测试代码时,我会得到MODMODULO函数,并给出相同的结果。然而,正如我从几个方面了解到的,MOD应该给出余数,而MODULO应该给出整数商。

代码语言:javascript
复制
program test
    implicit none

    print *, mod(17,3)
    print *, mod(17.5,5.5)
    print *, mod(17.5d0,5.5)
    print *, mod(17.5,5.5d0)

    print *, modulo(17,3)
    print *, modulo(17.5,5.5)
    print *, modulo(17.5d0,5.5)
    print *, modulo(17.5,5.5d0)
end program test

打印出来:

2

1.00000000

1.0000000000000000

1.0000000000000000

2

1.00000000

1.0000000000000000

1.0000000000000000

结果是所有剩余的,这是MOD应该做的,但是对于MODULO,它不是应该打印出模数,在这个例子中,5,然后三个3,以不同的精度?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-28 22:00:03

你可能误解了这些功能的目的。他们应该给你同样的答案,也就是除数后的余数,当两个论点都是肯定的。但是,用否定的观点来考虑一下情况:

代码语言:javascript
复制
print *, mod( 17,  3)
print *, mod( 17., 3.)
print *, mod(-17,  3)
print *, mod(-17., 3.)
print *, modulo(-17,  3)
print *, modulo(-17., 3.)

会回来的

代码语言:javascript
复制
2
2.000000
-2
-2.000000
1
1.000000

因此,MODULO(A,P)的结果对阳性的P是阳性的,而且实际上必须与P有相同的符号。MODULO的工作方式不同,取决于AP是整数还是实数。有关确切定义,请参阅文档。

模式 模数

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53528505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档