乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 41|回复: 2

用C#创建2X,6G13.6 Fortran格式的简单方法

[复制链接]

24

主题

204

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2015-10-2 16:42:03 | 显示全部楼层 |阅读模式
我正在将一个输出写入一个需要严格格式的文件,即Fortran格式2X,6G13.6。这里有人以前用Fortran编写过代码,并且知道如何在.net中复制吗
根据我在这里获得的信息,使用描述符Gw的格式。其中w是总字段宽度,d是小数点右侧的位数。如果该值大于0.1,但不太大,无法放入字段,则使用字段宽度w以十进制格式(类似于F描述符)写入该数字,并输出d个有效数字。这个数字后面有四个空格。否则,它的行为与Ew完全相同。d描述符。2X表示以2个空格开始行,6在G之前表示以G13.6格式输出6个值
公共静态字符串写格式(双值)
{
//值为0时的特殊输出条件
如果(值==0)
{
返回“0.000000”。左键(13)
}
//最大字段宽度大于max int,因此请检查max int
如果(值>0.1&&value
{
字符串temp=value.ToString()
//首先检查数字是否没有小数。
if(temp.IndexOf(“.”===-1)
{
var长度=温度长度
如果(值
{
如果(长度>=6)
{
返回(值为.ToString(“G6”)+).PadLeft(13)
}
var pad=7-长度
返回(value.ToString()+”。PadRight(pad,'0')+“”)。padlight(13)
}
}
}
返回值.ToString(“#.#0.0e+00”).PadLeft(13)
}

输出应该是什么样子https://farm6.staticflickr.com/5691/21707335858_cc00624d4a_b.jpg“alt=”“width=“800”height=“700”class=“bbc_img已调整大小”>

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
7
发表于 2015-10-5 10:36:10 | 显示全部楼层
如果我没记错的话,6G13.6。我早就忘记了Fortran和Cobal
G格式化,(.6)使用6位有效数字,(G前面的6位)在右侧填充6个空格,(13)总宽度/填充前面,以形成这么多的总空格
您需要涵盖多种格式类型还是只涵盖“G”格式?是格式化变量还是输出总是遵循单一规范?
回复

使用道具 举报

0

主题

9

帖子

3

银币

初来乍到

Rank: 1

铜币
9
发表于 2015-10-5 11:04:03 | 显示全部楼层
我真的只需要它的G,因为其中95%都是(2X,6G13.6)格式。我可能错了,但我阅读规范的方式是2X表示行的前两个字符是空格,然后G13.6格式重复6次。最多有13位数字,有6位有效数字。因此,10的值为10.0000,190的值为190.000。规范中还有其他要求。
我想我只需要提出每个案例,然后为每个案例编写代码。然而,当我尝试这样做时,我通常会感到困惑,并认为可能有人以前遇到过它,并且有现成的解决方案。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 23:52 , Processed in 0.142907 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表