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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

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.