F描述符以普通小数形式输出实数。它适合电压、长度、温度等数值范围相对稳定且需要固定小数位数的结果。
语法结构
Fw.d
F0.d
- w是整个字段的宽度,其中包括符号、整数部分、小数点和小数部分。
- d是小数点后的位数,超出的部分会按数值进行舍入。
- F0.d省去固定字段宽度,使用容纳结果所需的最小宽度。
本文代码
! Fw.d控制实数的字段宽度和小数位数。
program fixedPointDescriptorDemo
implicit none
real :: voltage
voltage = 12.34567
print "(A,F10.2)", "F10.2:", voltage
print "(A,F10.4)", "F10.4:", voltage
print "(A,F0.3)", "F0.3 :", voltage
end program fixedPointDescriptorDemo
编译运行
(base) hong@hongdeMacBook-Pro 035.fixedPointDescriptor % gfortran -Wall -Wextra -std=f2018 exampleFixedPointDescriptor.f90
(base) hong@hongdeMacBook-Pro 035.fixedPointDescriptor % ./a.out
F10.2: 12.35
F10.4: 12.3457
F0.3 :12.346
现象分析
F10.2和F10.4都使用10个字符位置,但分别保留2位和4位小数,因此左侧填充的空格数不同。F0.3不保留固定宽度,只输出舍入到3位小数后的12.346。
核心知识点
- F描述符输出普通小数,不使用指数形式。
- w控制字段宽度,d控制小数位数。
- 减少小数位数会发生舍入,而不是简单截断。