Perl - 将数字转换为 2 位小数
Perl - Convert Number to 2 Decimal
我想将数字转换为小数。我一直在使用:
sprintf("%02d", $price / 12);
只是有时候 $price
是一个整数,所以我得到的不是 6
,而是 06
。我如何确保它转换为小数点后 2 位,但又不在整数前添加零?
sprintf('%.2f', $price/12) =~ s/\.00\z//r # 5.14+
或
do { my $s = sprintf('%.2f', $price/12); $s =~ s/\.00\z//; $s }
对于以上两项,
- 如果
$price/12 == 5.999
,计算结果为 6
- 如果
$price/12 == 6
,计算结果为 6
- 如果
$price/12 == 6.001
,计算结果为 6
- 如果
$price/12 == 6.2
,计算结果为 6.20
- 如果
$price/12 == 6.22
,计算结果为 6.22
- 如果
$price/12 == 6.222
,计算结果为 6.22
- 如果
$price/12 == 6.229
,计算结果为 6.23
int( $price / 6 + 0.5 );
Perl 会根据需要自动在字符串和数字之间切换。
我想将数字转换为小数。我一直在使用:
sprintf("%02d", $price / 12);
只是有时候 $price
是一个整数,所以我得到的不是 6
,而是 06
。我如何确保它转换为小数点后 2 位,但又不在整数前添加零?
sprintf('%.2f', $price/12) =~ s/\.00\z//r # 5.14+
或
do { my $s = sprintf('%.2f', $price/12); $s =~ s/\.00\z//; $s }
对于以上两项,
- 如果
$price/12 == 5.999
,计算结果为6
- 如果
$price/12 == 6
,计算结果为6
- 如果
$price/12 == 6.001
,计算结果为6
- 如果
$price/12 == 6.2
,计算结果为6.20
- 如果
$price/12 == 6.22
,计算结果为6.22
- 如果
$price/12 == 6.222
,计算结果为6.22
- 如果
$price/12 == 6.229
,计算结果为6.23
int( $price / 6 + 0.5 );
Perl 会根据需要自动在字符串和数字之间切换。