24小时热门版块排行榜    

查看: 2074  |  回复: 7

liming9398

金虫 (正式写手)

[求助] numerical recipes in fortan 代码的疑惑 已有1人参与

SUBROUTINE flmoon(n,nph,jd,frac)
      INTEGER jd,n,nph
      REAL frac,RAD
      PARAMETER (RAD=3.14159265/180.)
      INTEGER i
      REAL am,as,c,t,t2,xtra
      c=n+nph/4.
      t=c/1236.85
      t2=t**2
      as=359.2242+29.105356*c
      am=306.0253+385.816918*c+0.010730*t2
      jd=2415020+28*n+7*nph
      xtra=0.75933+1.53058868*c+(1.178e-4-1.55e-7*t)*t2
      if(nph.eq.0.or.nph.eq.2)then
        xtra=xtra+(0.1734-3.93e-4*t)*sin(RAD*as)-0.4068*sin(RAD*am)
      else if(nph.eq.1.or.nph.eq.3)then
        xtra=xtra+(0.1721-4.e-4*t)*sin(RAD*as)-0.6280*sin(RAD*am)
      else
        pause 'nph is unknown in flmoon'
      endif
      if(xtra.ge.0.)then
        i=int(xtra)
      else
        i=int(xtra-1.)
      endif
      jd=jd+i
      frac=xtra-i
      return
      END
fotran77b标准谢的,为什么要用八位或者九位的常数给real数据RAD,as,am赋值?单精度不是最多七位吗,多了有意义吗?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hklulu

木虫 (正式写手)

000

【答案】应助回帖

感谢参与,应助指数 +1
哈哈,新手吧。

八位不是指的数字的位数,而是二进制的8B,就是通常用64位二进制数字来表示双精度数字。

此位非彼位。
00
2楼2012-05-14 11:26:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liming9398

金虫 (正式写手)

可能我没说清楚3.14159265不就是九位的吗,可RAD是real类型的也就是单精度类型的,最多七位有效数字啊,赋值时写这么多位还有意义吗,同样的问题出现在给real类型数据as赋值时表达式中出现29.105356,也超过7位有效数字啊
3楼2012-05-14 11:51:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hklulu

木虫 (正式写手)

000

【答案】应助回帖

奥,当然有意义:
32位机的单双精度的数据:单精度的有效数字:6位;双精度的有效数字:15位
64位机器上有最大18位有效数字和4932为指数的类型。

有些计算需要有效位数1000多位,比如Pi的计算等,这时候就需要自己编写程序来控制有效位数的输出。我记着10年前,我为了在PC上输出20位有效位数,亲自编写了一个多有效位(名为doubledoubledboule类型)的程序,不过现在网上多的很,楼主可以自己找一找,如果感兴趣的话。
00
4楼2012-05-14 13:47:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Carpathia

银虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
建议ls看清楚lz的问题
lz说得没错,给单精度赋值超过位数是没有意义的,同样给双精度数赋值也要加上D0才有意义。Fortran默认的是单精度数。
追求理想的道路上东张西望
5楼2012-05-15 15:02:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liming9398

金虫 (正式写手)

引用回帖:
4楼: Originally posted by hklulu at 2012-05-14 13:47:26:
奥,当然有意义:
32位机的单双精度的数据:单精度的有效数字:6位;双精度的有效数字:15位
64位机器上有最大18位有效数字和4932为指数的类型。

有些计算需要有效位数1000多位,比如Pi的计算等,这时候就需 ...

不太明白你的回复,你解释一下吗?我只是觉得这是本有名的书,似乎不应该犯这种低级错误,或许是作者另有初衷,我没理解到吗?
6楼2012-05-15 15:16:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jackplay

金虫 (小有名气)

c语言中,如果最多有效位的数是这段函数的有效位,所以较少有效数位的数其实省去了最后的0而已,不知道是不是可以类比

发自小木虫Android客户端
maths physics chemistry
7楼2016-01-09 08:21:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

43fd6ys

木虫 (正式写手)

【答案】应助回帖

应该没错,可能是
当表达式的数字长度超过单精度后,会采用双精度进行运算,最后赋值再转为单精度数。
8楼2016-01-09 21:20:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 liming9398 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +6 5sJFDKp2kwuI 2026-11-06 14/700 2026-11-09 11:52 by GwrQVVR6Oenx
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +5 5sJFDKp2kwuI 2026-11-06 16/800 2026-11-09 11:47 by GwrQVVR6Oenx
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 5sJFDKp2kwuI 2026-11-06 15/750 2026-11-09 11:41 by GwrQVVR6Oenx
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 5sJFDKp2kwuI 2026-11-06 15/750 2026-11-09 11:36 by GwrQVVR6Oenx
[考研] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 5sJFDKp2kwuI 2026-11-06 12/600 2026-11-09 06:32 by l48hFd8Nwae2
[论文投稿] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 5sJFDKp2kwuI 2026-11-06 12/600 2026-11-09 05:26 by l48hFd8Nwae2
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 2rKfVQg2jQww 2026-11-06 11/550 2026-11-09 00:26 by l48hFd8Nwae2
[公派出国] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 5sJFDKp2kwuI 2026-11-06 8/400 2026-11-09 00:14 by l48hFd8Nwae2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 5sJFDKp2kwuI 2026-11-06 8/400 2026-11-08 23:01 by l48hFd8Nwae2
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 5sJFDKp2kwuI 2026-11-06 9/450 2026-11-08 22:46 by l48hFd8Nwae2
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ELBZ6WwEaRj6 2026-11-05 5/250 2026-11-06 16:43 by 5sJFDKp2kwuI
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 ELBZ6WwEaRj6 2026-11-04 14/700 2026-11-06 16:32 by 5sJFDKp2kwuI
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +5 ELBZ6WwEaRj6 2026-11-04 10/500 2026-11-06 16:23 by 5sJFDKp2kwuI
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 ncTVBM6AOJHF 2026-11-04 15/750 2026-11-06 13:49 by BkA9Bi5cMhkD
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ELBZ6WwEaRj6 2026-11-05 5/250 2026-11-06 09:01 by 2lRNluKrJpwL
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 kvewwGtKktqB 2026-11-04 11/550 2026-11-06 05:10 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +6 kvewwGtKktqB 2026-11-04 16/800 2026-11-06 05:00 by qL1cU46YIdK0
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ELBZ6WwEaRj6 2026-11-04 8/400 2026-11-06 02:24 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 hNpp4Y2CGvSC 2026-11-04 12/600 2026-11-06 01:53 by qL1cU46YIdK0
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 11:10 by PYZmcHr5kSaq
信息提示
请填处理意见