Perl 如果数字字符串是完整的,如何将其优雅地打印为整数?
这里的想法是将像Perl 如果数字字符串是完整的,如何将其优雅地打印为整数?,perl,formatting,Perl,Formatting,这里的想法是将像“12.0”这样的数字打印为“12”,但不更改像“14.6”这样的部分数字 当然,有很多方法可以做到这一点,但下面的内容对我来说似乎不够优雅 s\\.0+$表示(“12.0”、“14.6”) $\uu=int($\u)==$\ ux?int($):$代表(“12.0”、“14.6”) 您可以使用以DWIM方式打印的数字: say 0+$_ for @numbers; 或者,如果要使用sprintf格式,可以使用%g模式。这会打印像%e或%f这样的数字。对于小整数,%e的行为类似
“12.0”
这样的数字打印为“12”
,但不更改像“14.6”
这样的部分数字
当然,有很多方法可以做到这一点,但下面的内容对我来说似乎不够优雅
s\\.0+$表示(“12.0”、“14.6”)代码>
$\uu=int($\u)==$\ ux?int($):$代表(“12.0”、“14.6”)代码>
您可以使用以DWIM方式打印的数字:
say 0+$_ for @numbers;
或者,如果要使用sprintf
格式,可以使用%g
模式。这会打印像%e
或%f
这样的数字。对于小整数,%e
的行为类似于%d
printf "%g\n", $_ for "200000000.0", "12.0", "16.13";
输出:
2e+08
12
16.13
您可以使用以DWIM方式打印的数字:
say 0+$_ for @numbers;
或者,如果要使用sprintf
格式,可以使用%g
模式。这会打印像%e
或%f
这样的数字。对于小整数,%e
的行为类似于%d
printf "%g\n", $_ for "200000000.0", "12.0", "16.13";
输出:
2e+08
12
16.13
对@numbers说0+$怎么样?对字符串进行NUMIFY,然后打印它们将DWIM@amon:是的,很有效,我已经忘了那个。想知道是否有办法将sprintf转化为提交。对@numbers说0+$怎么样?对字符串进行NUMIFY,然后打印它们将DWIM@amon:是的,很有效,我已经忘了那个。想知道是否有一种方法可以将sprintf转化为提交。是的,就是这样。我知道这很简单!是的,就是这样。我知道这很简单!