gpt4 book ai didi

perl - 在 Perl 中,如何限制小数点后的位数但没有尾随零?

转载 作者:行者123 更新时间:2023-12-04 16:21:56 26 4
gpt4 key购买 nike

这个问题类似于"dropping trailing ‘.0’ from floats" , 但对于 Perl 和小数点后的最大位数。

我正在寻找一种将数字转换为字符串格式的方法,删除任何多余的“0”,不仅包括小数点之后。并且仍然具有最大数量的数字,例如3

输入数据是浮点数。期望的输出:

0         -> 0
0.1 -> 0.1
0.11 -> 0.11
0.111 -> 0.111
0.1111111 -> 0.111

最佳答案

直接使用以下内容:

my $s = sprintf('%.3f', $f);
$s =~ s/\.?0*$//;

print $s

...或者定义一个子程序来更一般地执行它:
sub fstr {
my ($value,$precision) = @_;
$precision ||= 3;
my $s = sprintf("%.${precision}f", $value);
$s =~ s/\.?0*$//;
$s
}

print fstr(0) . "\n";
print fstr(1) . "\n";
print fstr(1.1) . "\n";
print fstr(1.12) . "\n";
print fstr(1.123) . "\n";
print fstr(1.12345) . "\n";
print fstr(1.12345, 2) . "\n";
print fstr(1.12345, 10) . "\n";

打印:
0
1
1.1
1.12
1.123
1.123
1.12
1.12345

关于perl - 在 Perl 中,如何限制小数点后的位数但没有尾随零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/571329/

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