Perl 格式化固定十进制标量
我一直在试验Perl 格式化固定十进制标量,perl,printf,Perl,Printf,我一直在试验sprintf,试图将小数位数固定在小数点右边和左边 以下方法可以工作,但不能很好地处理0.00。如您所见,0.00与所有其他非零十进制值一样没有正确对齐 sprintf(“%.2f”,$sw\u chgs) 如果我在sprintf中添加一个字段宽度或指示符,如%6f,“2f”将在小数点后打印 sprintf(“%6f.2f”),$ws\u chgs 535.14 642.90 20.31 1198.35 442.74 531.90 20.31 994.95 0.00
sprintf
,试图将小数位数固定在小数点右边和左边
以下方法可以工作,但不能很好地处理0.00。如您所见,0.00与所有其他非零十进制值一样没有正确对齐
sprintf(“%.2f”,$sw\u chgs)
如果我在sprintf中添加一个字段宽度或指示符,如%6f,“2f”将在小数点后打印
sprintf(“%6f.2f”),$ws\u chgs
535.14 642.90 20.31 1198.35
442.74 531.90 20.31 994.95
0.00 0.00 0.00 0.00
244.100000.2f
我想做一些像下面这样的事情来限制整数的字段宽度
sprintf(“%6d”,$prev\u rd)
十进制值可以吗?请注意,
6
是格式化字符串中所有字符的总数
sprintf("%06.2f ", 1);
输出
001.00
1.00
或者没有前导零
sprintf("%6.2f ", 1);
输出
001.00
1.00
请注意,
6
是格式化字符串中所有字符的总数
sprintf("%06.2f ", 1);
输出
001.00
1.00
或者没有前导零
sprintf("%6.2f ", 1);
输出
001.00
1.00
您误解了
printf
格式的格式。它有点像这样:
"%" <padding>? <minimum width>? "." <precision>? <type>
印刷品
535.14 : 642.90 : 20.31 : 1198.35
442.74 : 531.90 : 20.31 : 994.95
0.00 : 0.00 : 0.00 : 0.00
请注意,最小宽度包括十进制分隔符
宽度和精度参数不包括像
f
这样的类型。因此,您的%6f.2f
被解析为模式%6f
,它位于非特殊字符串.2f
之前。您误解了printf
格式的格式。这有点类似:
"%" <padding>? <minimum width>? "." <precision>? <type>
印刷品
535.14 : 642.90 : 20.31 : 1198.35
442.74 : 531.90 : 20.31 : 994.95
0.00 : 0.00 : 0.00 : 0.00
请注意,最小宽度包括十进制分隔符
宽度和精度参数不包括像
f
这样的类型。因此,您的%6f.2f
被解析为模式%6f
,它位于非特殊字符串.2f
sprintf(“%6.2f”,1”)之前;如果没有前导零填充wanted@MiguelPrz用于Sprintf(“%6.2f”,1)的tnx;如果没有前导零填充wanted@MiguelPrz请tnx发表评论