http://qs321.pair.com?node_id=275219

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I want to format a real number to 2.4f format. This is simple one would say just use $n=sprintf("%2.4f",$n); , where $n is the number to be rounded. However when I do this I get a number like 23.4600 or 23.0000, which is indeed %2.4f format but I want to eliminate the trailing zeros and decimal where needed resulting in 23.46 and 23

This is a chunk of the code that does it:

$n=sprintf("%2.4f",$n); $n =~ s/0+$//; $n =~ s/\.$//;

This does work just fine, however I would like to find away to do the substitution by combining the these 2 separate substitutions into 1 more eloquant one (single line).... or perhaps an even better way to do it all together. Thank you for your help.