There is a difference between what is represented and what is actually being stored,
When you subtract the two the difference is exposed:DB<11> p sprintf("%.8f", $expected); 1.98000000 DB<10> p sprintf("%.8f", $premium); 1.98000000 DB<12> p ($expected == $premium) DB<13>
DB<16> p ($expected - $premium) -2.22044604925031e-16
But it is very small. Let's lop off the unnecessary information:
DB<13> $pa = 1.98 DB<14> $pb = 1.98 DB<15> p ($pb == $pb) 1 DB<17> p ($pb - $pa) 0 DB<18> DB<22> $exp = sprintf("%.8f", $expected) DB<23> $pre = sprintf("%.8f", $premium) DB<24> p ($pre - $exp) 0
So you see if you set limits on what Perl stores you should get more accurate comparisons.
Celebrate Intellectual Diversity
In reply to Re: Results depending on evaluation order
by InfiniteSilence
in thread Results depending on evaluation order
by fishy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |