C:\>perl -e "print '1,000,000' + 1000" 1001 C:\> #### sub decommify { my ( $number ) = @_; $number =~ tr/,//d; return $number } sub commify { my ( $number ) = @_; return undef unless $number; ( $number, my $dec ) = $number =~ m!([+-]?\d+)\.?(\d*)!; return undef unless $number; $number =~ s/(\d)(?=(\d{3})+(\D|$))/$1,/g if length($number) > 3; return $dec ? "$number.$dec" : $number; } print commify( decommify("1,000,001.123456789") + 1000 ); __DATA__ 1,001,001.12345679