Fortran Coder

查看: 20031|回复: 5

[数值问题] 有关mod 函数

[复制链接]

13

帖子

5

主题

0

精华

入门

F 币
62 元
贡献
40 点
发表于 2016-9-29 22:17:33 | 显示全部楼层 |阅读模式
mod函数的自变量不能取实数,要是实数怎么办

59

帖子

2

主题

0

精华

大师

F 币
810 元
贡献
476 点
发表于 2016-9-29 23:07:54 | 显示全部楼层
mod函数的自变量能取实数
mod(1.2,1.0)=0.2

13

帖子

5

主题

0

精华

入门

F 币
62 元
贡献
40 点
 楼主| 发表于 2016-9-30 10:30:08 | 显示全部楼层
kerb 发表于 2016-9-29 23:07
mod函数的自变量能取实数
mod(1.2,1.0)=0.2

懂了,谢了,能不能给我看看这个问题,说循环变量必须为整数型什么意思,不可以实数吗
Do i = 0.0,30.0,0.025
     1
Error: Deleted feature: Loop variable at (1) must be integer

1947

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1295 元
贡献
545 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2016-9-30 10:44:19 | 显示全部楼层
是的,不可以。
改善的做法是:
[Fortran] 纯文本查看 复制代码
real :: i
integer :: ido
Do ido = 1 , Nint( 30.0/0.025 )
  i = 0.025 * (ido-1)
  ....

13

帖子

5

主题

0

精华

入门

F 币
62 元
贡献
40 点
 楼主| 发表于 2016-10-1 09:20:30 | 显示全部楼层
fcode 发表于 2016-9-30 10:44
是的,不可以。
改善的做法是:
[mw_shl_code=fortran,true]real :: i

这样改第一个循环可以,但是我的另外一个循环就不可以了Do xdo = st,nint( et/step)
        x=step*(xdo-1)
        if(x==0)then
            x=x+0.1
            endif
这个,他的下一个循环st又是实数行了,怎么处理呢

953

帖子

0

主题

0

精华

大师

F 币
180 元
贡献
73 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
发表于 2016-10-1 16:33:56 | 显示全部楼层
同样的办法呀~~没有什么去别。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-3-28 16:41

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表