On Tue, Dec 03, 2013 at 01:31:27PM +0000, Dave Mitchell wrote: > On Mon, Dec 02, 2013 at 04:34:34PM +0000, Dave Mitchell wrote: > > On Mon, Dec 02, 2013 at 03:42:59PM +0000, Zefram wrote: > > > Dave Mitchell wrote: > > > > I fixed this by stopping the processing of the integer or fractional > > > > component once its been detected that only zeroes are left (with a > > > > suitable adjustment of the exponent). > > > > > > Eww. That won't fix cases where the extra digits are non-zero, such as > > > > > > $ echo 0.15301e-305 | perl -e '$v = <STDIN>; print "v=", $v + 0, "\n";' > > > v=0 > > > $ echo 0.15399e-305 | perl -e '$v = <STDIN>; print "v=", $v + 0, "\n";' > > > v=0 > > > > > > Oh yeah :-( > > > > I'll need to rethink that. > > Second attempt now smoking as smoke-me/davem/float1: > > commit 72cfc3028683d7d6428ee0b881a788aba667fe8e > Author: David Mitchell <davem@iabyn.com> > AuthorDate: Mon Dec 2 15:04:49 2013 +0000 > Commit: David Mitchell <davem@iabyn.com> > CommitDate: Tue Dec 3 12:30:01 2013 +0000 > > [perl #120426] atof() small value rounding errors > > For something like 0.153e-305, which is small, but not quite the smallest > number (which is around 2.2e-308), adding extra digits to the fractional par > could cause unnecessary rounding to zero. Now in blead as b27804d8b48d647c08dc853b49e5b311fe166616. This doesn't address comments that appeared further in this thread. -- Music lesson: a symbiotic relationship whereby a pupil's embellishments concerning the amount of practice performed since the last lesson are rewarded with embellishments from the teacher concerning the pupil's progress over the corresponding period.Thread Previous | Thread Next