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


in reply to modulus and floating point numbers

Whether it's faster or not you'll have to determine yourself, but it's another way:

use POSIX qw[ fmod ];; print fmod( $_, 100 ) for 12300, 12301, 12399;; 0 1 99

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^2: modulus and floating point numbers
by dextius (Monk) on Nov 18, 2008 at 03:15 UTC
    how about .00001 ?

      I'm not sure if I understand the question, but:

      [0] Perl> print fmod( $_, 100 ) for 12300, 12301, 12399, .00001;; 0 1 99 1e-005

      Or do you mean this:

      [0] Perl> print fmod( $_, 1 ) for map{ ($_, -$_ ) } 12300, 12301, 1239 +9, .00001;; 0 0 0 0 0 0 1e-005 -1e-005

      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.