http://www.perlmonks.org?node_id=3478

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

can 123.456 be displayed as 123456?
  • Comment on Is there a way to display numbers with an implied decimal position?

Replies are listed 'Best First'.
Re: Is there a way to display numbers with an implied decimal position?
by Crulx (Monk) on Feb 15, 2000 at 03:54 UTC
    So you basically want
    my $bob = 123.456 print &my_format($bob) . "\n";
    to return 123456 What happens on 12345.6789 Do you want
    12345678
    or
    12345679 ?
    Or do you want something else? Assuming the last case is correct...
    $bob = 123.4567; print &print_fixed($bob). "\n"; exit 0; sub print_fixed { my $num = shift; my $ipart = int($num); my $dpart = sprintf("%.3f",$num); my ($frac_part) = $dpart=~ /\.(\S*)/; return $ipart . $frac_part; }
    does what you want. You can specify arbitary decimal places by passing in a second arg and replacing sprintf("%.3f",$num); with sprintf("%.$dec_places",$num);
    Crulx
Re: Is there a way to display numbers with an implied decimal position?
by ton (Friar) on Apr 05, 2001 at 01:42 UTC
    Try this:
    $foo = 123.456; $foo =~ s/\.//g; print $foo;