我只是想知道pascal程序中的以下命令是做什么的:
WRITELN(MaxTab[index,1]:7:5,' ',
MaxTab[index,2]:8:3,' ',
MaxTab[index,3]:5:1);
MaxTab
定义为ARRAY[1..200,1..3] OF REAL
,索引是计数器。通常WRITELN
只打印用括号或变量写的文字,但我不明白]
背后的数字是什么(例如]:7:5
)。
答案 0 :(得分:3)
这是一个类似于C语言的sprintf("%07.5f")
的Pascal结构。来自FreePascal documentation:
对于实数值,您可以使用上述语法在指定的字段宽度中显示科学记数法,或者您可以转换为固定的小数点表示法:
Value : field_width : decimal_field_width
字段宽度是总字段宽度,包括小数部分。整个数字部分始终完全显示,因此如果您没有分配足够的空间,它仍会显示。
但是,如果小数位数超过指定的十进制字段宽度,则输出将四舍五入显示到指定的位数(尽管变量本身不会更改)。
write (573549.56792:20:2);
看起来像(前面有11个空格):
573549.57
答案 1 :(得分:2)
第一个冒号后面的值以字符形式确定字段的宽度,第二个值确定小数点后面显示的位数。