我正在使用PERL(由于遗留原因),我想在CSV文件中格式化固定宽度列。如何格式化以下值:
1.0001
10.0001
100.0001
1000.0001
1000000.1
100000001
通过右边填充浮动为固定宽度为8或者为零, BUT 如果遇到大整数,则字段宽度必须增大以适应:
1.000100
10.00010
100.0001
1000.000
1000000
100000001
我没有执行任何操作,所以它们可能被视为字符串或其他操作。我已经尝试了sprintf文档中的每个组合。
感谢。
答案 0 :(得分:3)
substr(sprintf("%.6f", $x), 0, 8)
或
substr($x.("0"x5), 0, 8)
答案 1 :(得分:0)
可能有一种更简洁的方式,但这个例子应该有效:
my @array = qw(1.0001 10.0001 100.0001 1000.0001);
for my $nums (@array) {
$nums .= '0' while length $nums < 8;
print "$nums\n";
}
1.000100
10.00010
100.0001
1000.0001