Do you know where your variables are? PerlMonks

Re^2: Is this odd behavior a floating point problem?

 on Mar 24, 2012 at 00:47 UTC ( #961339=note: print w/replies, xml ) Need Help??

:D Looks like two separate off-by-one error (OBOE) errors to me :)

First you start with non-zero and add 40 times (one too many), then you start with non-zero and add 41 times (one too many twice).

If you start with non-zero you need to add only 39 times, or start with zero and add 40 times :)

In short

```perl -MData::Dump -e " @f = map { 0.001 } 1 .. 40; dd\@f; \$o = 0; for(
+@f){ dd \$o+=\$_; } dd int @f; dd \$o/int(@f); "

perl -MData::Dump -e "  \$o = 0; for(1 .. 40){ dd \$o+= 0.001; } dd \$o/4
+0; "

It didn't dawn on me to check wickedjesters (or your) math until ww raised the quesiton

Replies are listed 'Best First'.
Re^3: Is this odd behavior a floating point problem?
by Eliya (Vicar) on Mar 24, 2012 at 01:09 UTC

Not sure what you're talking about.

n times adding x to zero is mathematically (but not necessarily numerically) the same as n * x.

```\$ perl -le '\$sum += 1 for 1..40; print \$sum'
40

So where is the problem?  I think you overlooked that \$sum is initially undef/zero.

Create A New User
Node Status?
node history
Node Type: note [id://961339]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2018-01-17 02:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
How did you see in the new year?

Results (195 votes). Check out past polls.

Notices?