Fortran Coder

查看: 78|回复: 5

[输入输出] FORTRAN77 输出后数值发生变化

[复制链接]

10

帖子

3

主题

0

精华

入门

F 币
63 元
贡献
35 点
发表于 2019-8-21 17:31:25 | 显示全部楼层 |阅读模式
[Fortran] 纯文本查看 复制代码
      WRITE(6,38)K1,AK1,K21,AK21,K31,AK31,K01,AK01                      00007890
   38 FORMAT(1H ,' K1=',1PE10.3,2X,F7.3,5X,'K21=',1PE10.3,2X,           00007900
     1F7.3,5X,'K31=',1PE10.3,2X,F7.3,5X,'K01=',1PE10.3,2X,              00007910
     2F7.3/)


这段代码中变量AK1,AK21,AK31,AK01用浮点数输出后数值是用科学计数法输出的10倍,结果如图。
是什么导致了这个现象呢?求各位大佬解答。


捕获.PNG
回复

使用道具 举报

373

帖子

1

主题

0

精华

宗师

F 币
1967 元
贡献
1285 点
发表于 2019-8-21 21:34:26 | 显示全部楼层
1、给出用两种形式输出的结果 and 代码.
2、看看P编辑符。
3、我试了,没有你说的情况。
QQ截图20190821213231.png

10

帖子

3

主题

0

精华

入门

F 币
63 元
贡献
35 点
 楼主| 发表于 2019-8-22 14:21:13 | 显示全部楼层
li913 发表于 2019-8-21 21:34
1、给出用两种形式输出的结果 and 代码.
2、看看P编辑符。
3、我试了,没有你说的情况。

我重新截了下图,上面那一段是原来的代码,后面两个write是我加的。
我如果把原来代码里的F7.3改成1PE10.3,结果就是对的。但是用Fx.x,就是原来的十倍。
002.PNG
001.PNG

10

帖子

3

主题

0

精华

入门

F 币
63 元
贡献
35 点
 楼主| 发表于 2019-8-22 14:23:22 | 显示全部楼层
FlagArchitect 发表于 2019-8-22 14:21
我重新截了下图,上面那一段是原来的代码,后面两个write是我加的。
我如果把原来代码里的F7.3改成1PE10. ...

会不会是编译器的问题呢,我用的simply fortran,学校这破电脑的VS死活装不上intel的编译器

373

帖子

1

主题

0

精华

宗师

F 币
1967 元
贡献
1285 点
发表于 2019-8-23 15:37:54 | 显示全部楼层
本帖最后由 li913 于 2019-8-23 20:54 编辑

如果你认真看看P编辑符的说明就明白了。1、输出时,P遇到E,输出值不变,但输出样式会变(比如1p结果: 1.0e1 变为 0.1e2);
2、P遇到f,输出值改变(1p结果: 10.0 变为 100.0);
3、同一行输出两个或多个数据,如果第一个格式出现P, 后续的输出默认继承前一个P的效果;
4、可用0P取消该继承效果。"(1Pe12.3,e12.3)" 两个都具有P效果;"(1Pe12.3,0Pe12.3,f12.3)"仅第一个具有P效果。

QQ截图20190823152239.png
QQ截图20190823153455.png

10

帖子

3

主题

0

精华

入门

F 币
63 元
贡献
35 点
 楼主| 发表于 2019-8-27 14:22:15 | 显示全部楼层
li913 发表于 2019-8-23 15:37
如果你认真看看P编辑符的说明就明白了。1、输出时,P遇到E,输出值不变,但输出样式会变(比如1p结果: 1.0e1 ...

明白了,感谢大佬指点!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-9-21 17:03

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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