编程format如何使用(fortran中的format语句)

本文目录
fortran中的format语句
Fortran中的Format语句
Fortran是一种非常古老的编程语言,但是在科学计算和工程计算方面一直扮演着很重要的角色。而format语句则是fortran中比较重要的一个部分,它能够让程序员控制输出的格式,非常灵活方便。这篇文章将介绍fortran中的format语句以及它的用法和应用。
Format语句的语法
在fortran中,使用format语句需要遵守一定的语法规则,下面是一个常常使用的格式:
FORMAT(...)
大部分extentsion的语法如头字段的使用在format语句中是可选的,但引导字段的使用是必选的。在前面的语法中,方括号表示可选项,而省略号则表示允许重复多次的项。
Format语句的注释字段
在fortranformat语句中,注释字段是一种用来记录额外信息的可选项。注释字段通常包含以下信息:
格式项的类型
空格和零的填充
宽度和精度
注释字段可用于处理输入和输出,还可以用于文件存取情况下的数据格式化操作,下面是一个注释字段格式化输出的例子:
sample_program.f90
programformat_example
implicitnone
integer,parameter::wp=selected_real_kind(8,99)
real(wp)::pi
integer,parameter::n=50
pi=4.0_wp*atan(1.0_wp)
write(*,"(a,i4,f10.8)")"Thevalueofpiwith",n,"significantdigitsis:",pi
endprogramformat_example
上面的程序输出如下:
Thevalueofpiwith50significantdigitsis:3.14159265
在上面的代码中,注释字段"a"后面跟了一个字符串"Thevalueofpiwith",我们称之为字符转换描述符,它告诉fortran输出格式的类型。紧随其后的"i4"表示了宽度信息。其余的"f10.8"表示了fortran的实数输出格式。
Format语句的其他字段
在fortran中,还有许多其他的格式化控制字段可以使用,包括指数描述符(e,es,d等),十六进制格式描述符以及其他一些更加专业化的类型。
下面是一个使用不同描述符的例子:
sample_program.f90
programformat_example
implicitnone
integer,parameter::wp=selected_real_kind(8,99)
real(wp)::pi
integer,parameter::n=50
pi=4.0_wp*atan(1.0_wp)
write(*,"(a,i4,2x,f10.8,2x,f10.3,2x,e12.7)")"Piwith",n
,"significantdigits:",pi,pi,pi
endprogramformat_example
上面的程序输出如下:
Piwith50significantdigits:3.141592653.142E+00
在上面的代码中,我们使用了三个不同的输出格式化选择符:f10.8,f10.3和e12.7。其中,f表示实数类型,10.8表示输出宽度和精度,而e则是指数类型(科学计数法),同时也指定了输出width(12)和保留的精度digits(7)。
Format语句的应用
Fortran中的format语句可用于各种场合,包括打印屏幕输出、写入文本文件,甚至还可以用于二进制文件的数据格式化操作。假设我们要将以下程序写入文本文件:
sample_program.f90
programformat_example2
implicitnone
integer::i,j,k
doi=1,10,2
doj=1,5,1
k=i+j
write(*,"(3i5)")i,j,k
enddo
enddo
endprogramformat_example2
上面的程序输出如下:
%FormatExample
112
123
134
145
156
314
325
336
347
358
516
527
538
549
5510
在上面的代码中,我们使用了3i5选项,它表示"3个整型位宽为5",即对于每个循环,我们将i、j和k都打印为5位宽的整数。
总结
Format语句在fortran中具有重要的作用,它可以帮助我们控制程序输出的格式,使得我们的输出更加合理、易于阅读。此外,format语句还可以用于数据的存取(输入/输出)和文件的格式化操作等方面。希望这篇文章可以帮助大家更好地掌握fortran中的Format语句。
matlab中format是什么意思,怎么使用
format:设置输出格式
对浮点性变量,缺省为format short.
format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位显示,例如,3位数字显示显示int8范围 -128:127。
format short, long不影响整型变量的显示。
format long 显示15位双精度,7为单精度(scaled fixed point)
format short 显示5位(scaled fixed point format with 5 digits)
format short eng 至少5位加3位指数
format long eng 16位加至少3位指数
format hex 十六进制
format bank 2个十进制位
format + 正、负或零
format rat 有理数近似
format short 缺省显示
format long g 对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。
format short g 5位定点或浮点格式
format short e 5位浮点格式
format long e 双精度为15位浮点格式,单精度为7为浮点格式
实例如图
聊聊String.format()方法
先说说使用String.format方法来输出字符串的优势,我们可以回想一下我们刚开始学习Java时,对于不确定具体内容的参数,往往是使用字符串拼接的方式来进行输出的,比如说像下面这种:
我们可以看到,使用上面这种方式我们确实可以完成打印的需求,但是字符串拼接过程中其实是创建了一些我们不需要用到的字符串对象的。所以,面对这种不确定参数内容的场景,String类提供format的格式化方法来帮助我们解决这个问题。
format方法的核心在于对占位符的使用,我们可以预先定义好一个字符串的模板,有了模板之后我们只需要提供参数就行,底层会帮助我们把参数替换到对应的占位符中。我们以上面的案例为例,做一个小优化:
定义的模板字符串为: %s今年%d岁了,收到了%f块零花钱 ,其中第一个 %s 表示会将传入的第一个字符串参数替换掉 %s 这个占位符,对于 %d 和 %f 也是一样,分别表示整数类型和浮点类型的占位符。
从输出结果看,我们可以发现和之前使用字符串拼接的效果一模一样,但是使用format方法却有更多的好处:
(1) 参数更加明确 ,我们可以更加方便的找到输出的元素(在多参数的输出上会体现的更加明显)
(2) 降低了产生的无用内存对象
下面我们将对format方法中常用的占位符进行介绍:
其中我们用的比较多的,一般是字符串、整数、浮点、日期相关的占位符多一些。
我们以上面的占位符为例做一个小例子:
我们使用这些特殊的占位符来做一个小测试:
我们在常用占位符的介绍中提到了可以通过 %tx 的方式来定义日期占位符,其中 x 就需要我们再根据需要填入对应的日期格式。
同样的,我们根据上面提供的日期占位符来做一个简单的例子:
我们可以看到,我们定义的模板字符串为: today is %1$tY-%1$tm-%1$td ,理论上我们需要填入三个参数,但实际上我们只提供了1个日期类,原因是当1个参数会在模板字符串中多次使用时,我们可以使用 数字$ 的方式来对指定位置的参数进行替换。比如说 1$ 表示的就是这里将使用第1个参数进行替换。
同时,还需要注意,我们的索引占位符 数字$ 是需要写在%之后的,否则会识别错误。
至此,对于String.format方法我们就介绍到这里。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30



