Precision & InputForm perils

• To: mathgroup at smc.vnet.net
• Subject: [mg13629] Precision & InputForm perils
• Date: Fri, 7 Aug 1998 03:08:30 -0400
• Sender: owner-wri-mathgroup at wolfram.com

```I was surprised to find the output from InputForm[x]  in the line below
doesn't show the exact value used for (x).

In[1]:=
x=N[Pi];
InputForm[x]

Out[1]//InputForm=
3.141592653589793

If you want InputForm to show all the digits used you have to evaluate
(\$NumberMarks=True) as in the line below.

In[2]:=
\$NumberMarks=True;
InputForm[x]

Out[2]//InputForm=
3.14159265358979311`

By default Precision returns an integer (to be consistent with earlier
versions of Mathematica).   In the line below we are told (x) has
sixteen  digits of precision.  Well it turns out the precision (on my
computer) is a  bit less than sixteen digits.

In[3]:=
Precision[x]

Out[3]=
16

If you want Precision to give you a better idea what the precision is
you  have to evaluate the trap door (SetPrecision[Round, False]) as in
the line  below.

In[4]:=
SetPrecision[Round,False];
Precision[x]

Out[4]=
15.9546

In the line above Precision gave us a better idea how precise (x) is,
but  that isn't exactly right either.  You can get a better answer if
you look at  the InputForm of Precision[x] as below.

In[5]:=
Precision[x]//InputForm

Out[5]//InputForm=
15.9545897701910028`

Actually the precision above is also an approximation.  My computer
stores  machine numbers with a 53 bit mantissa, so the precision of (x)
is exactly (  Log[10,  2^53] ).  In the line below we see the precision
indicated by  Precision[x] is very close to the exact value.

In[6]:=
Precision[x] - Log[10, 2^53]

Out[6]=
1.77636`*^-15

Actually it's hardly ever important to know what the precision is to
many  decimal places.  That's because each binary bit corresponds to
about 0.30103  decimal digits.  I just thought I would point out that
what you normally see  isn't precisely the truth.

Ted Ersek

```

• Prev by Date: Re: Mandelbrot
• Next by Date: Re: Eigenvectors of a Complex Hermitian Matrix