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