我应该怎么做?我希望数字的数量是可配置的我尝试了以下方法:
my $digits = 2; my $test = 5.42223; $test = sprintf ("%.$digits\f", $test); print "$test \n";
但不起作用,它将打印“%.2”我应该得到5.42
yyyllmsg1#
通过在格式字符串中插入值来实现这一点,只需将变量名放在大括号中,以描述变量名停止的位置和格式说明符'f'开始的位置:
sprintf ("%.${digits}f", $test)
或者,您可以使用'*'作为格式宽度,使sprintf从下一个参数获取值:
sprintf ("%.*f", $digits, $test);
goucqfw62#
你几乎猜对了,但有两件事需要考虑:
use strict
\n
\f
sprintf
f
2条答案
按热度按时间yyyllmsg1#
通过在格式字符串中插入值来实现这一点,只需将变量名放在大括号中,以描述变量名停止的位置和格式说明符'f'开始的位置:
或者,您可以使用'*'作为格式宽度,使sprintf从下一个参数获取值:
goucqfw62#
你几乎猜对了,但有两件事需要考虑:
use strict
可以帮助您做到这一点。1.双引号上下文还插入其他内容,例如将序列
\n
插入到换行符中。序列\f
是一个换页符。因此,sprintf
不会看到格式说明符,因为f
已经从字符串中消失。