Re: The question of equality,...
- To: mathgroup at smc.vnet.net
- Subject: [mg60601] Re: The question of equality,...
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Wed, 21 Sep 2005 03:20:45 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 9/20/05 at 5:20 AM, ted.ersek at tqci.net wrote:
>Terry Snow wanted to know how to tell if two arbitrary precision
>numbers are the same even including the bits that are not known
>reliably. Consider the following:
>In[1]:= $Pre=InputForm;
>In[2]:= x1=N[1/10,18]
>Out[2]= 0.100000000000000000000000000005049`18
>In[3]:= x2=x1+10^-32
>Out[3]= 0.100000000000000000000000000005059`18
>Others suggested using RealDigits, but it seems RealDigits doesn't
>tell us about digits that may be wrong.
>In[4]:= RealDigits[x1]
>Out[4]= {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
>0}
RealDigits works fine *if* you compare binary digits, i.e.,
In[1]:=
x1 = 1.;
x2 = x1 + 10^-$MachinePrecision;
In[3]:=
RealDigits[x1] == RealDigits[x2]
Out[3]=
True
In[4]:=
RealDigits[x1, 2] == RealDigits[x2, 2]
Out[4]=
False
Note, I didn't use your particular example since on my system
In[5]:=
x1 = N[1/10, 18]
Out[5]=
0.1`18.
In[6]:=
x2 = x1 + 10^(-32)
Out[6]=
0.1`18.
In[11]:=
SetPrecision[x2 - x1, Infinity]
Out[11]=
0
That is the two numbers of your example are identical on my system.
--
To reply via email subtract one hundred and four