Re: Ceiling & Floor

*To*: mathgroup at yoda.physics.unc.edu*Subject*: Re: Ceiling & Floor*From*: David Sibley <sibley at math.psu.edu>*Date*: Wed, 25 Mar 92 20:47:07 -0500

> Ceiling[10^30 + 3.333] returns 1000000000000000019884624838656 > > Similarly for Floor[]. Is this a known bug? > > Ferrell Wheeler > wheeler at super.org > Not a bug. A misunderstanding of how Precision and Accuracy work in Mathematica. To quote the manual, "Mathematica", Second Edition, page 544: "Whenever machine-precision numbers appear in a calculation, the whole calculation is typically done in machine precision. Mathematica will then give machine-precision numbers as the result." This is followed by several examples. Numbers like 3.333 are considered to be machine-precision. That's 16 digits on my Sparcstation, and apparently on yours, too. Anyway, in your example this means even the 10^30 is calculated to only 16 digits. Adding 3.333 does not then change the value, as that's outside the range of correct digits of the 10^30 as calculated. There are examples of this phenomenon in the manual, too. There are several ways around this, if that's what you're looking for. If the 3.333 is more accurate than it appears to be, you just have to tell Mathematica that. One way is to use 10^30 + SetPrecision[3.333,31] and another is to use 10^30 + 3333/1000 I recommend you get and read the manual. It's very useful and well worth the price. David A. Sibley sibley at math.psu.edu