Perl> sub mod{ my( $a, $n ) = @_; return $a - $n * int( $a / $n ); };; Perl> print mod( 4.5, 1.25 );; ## prints 0.75 Perl> print mod( 4.5, -1.25 );; ## prints 0.75 Perl> print mod( -4.5, -1.25 );; ## prints -0.75 Perl> print mod( -4.5, 1.25 );; ## prints -0.75 #### Perl> use POSIX qw[ fmod ];; Perl> print fmod( 4.5, 1.25 );; ## prints 0.75 Perl> print fmod( 4.5, -1.25 );; ## prints 0.75 Perl> print fmod( -4.5, 1.25 );; ## prints -0.75 Perl> print fmod( -4.5, 1.25 );; ## prints -0.75 #### c:\test>\ruby\bin\ruby -e"p 4.5 % 1.25" ## prints 0.75 c:\test>\ruby\bin\ruby -e"p 4.5 % -1.25" ## prints -0.5 c:\test>\ruby\bin\ruby -e"p -4.5 % 1.25" ## prints 0.5 c:\test>\ruby\bin\ruby -e"p -4.5 % -1.25" ## prints -0.75