gpt4 book ai didi

Perl printf 使用逗号作为千位分隔符

转载 作者:行者123 更新时间:2023-12-03 23:27:07 26 4
gpt4 key购买 nike

使用 awk,我可以用逗号打印一个数字作为千位分隔符。
(预先使用 export LC_ALL=en_US.UTF-8)。
awk 'BEGIN{printf("%\047d\n", 24500)}'

24,500

我希望相同的格式可以与 Perl 一起使用,但事实并非如此:
perl -e 'printf("%\047d\n", 24500)'
%'d

Perl Cookbook 提供了这个解决方案:
sub commify {
my $text = reverse $_[0];
$text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g;
return scalar reverse $text;
}

但是我假设由于 printf 选项在 awk 中有效,它也应该在 Perl 中有效。

最佳答案

这是我使用了 20 多年的优雅 Perl 解决方案 :)

1 while $text =~ s/(.*\d)(\d\d\d)/$1\.$2/g;
如果你想要两位小数:
$text = sprintf("%0.2f", $text);

关于Perl printf 使用逗号作为千位分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33442240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com