Re: Zero does not Equal Zero
- To: mathgroup at smc.vnet.net
- Subject: [mg31281] Re: Zero does not Equal Zero
- From: Adam Smith<adam.smith at hillsdale.edu>
- Date: Fri, 26 Oct 2001 04:28:27 -0400 (EDT)
- References: <9qokvl$mu2$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
The problem is that you specified a non-integer value for the number of digits
of precision "21.35". As shown below, if you set it equal to an integer things
work out as expected. I don't know what SetPrecision does intenally when it is
a non-integer, but I agree that something strange happens.
In[1]:=
x=SetPrecision[1234567890123456789012, 21.35];
y=x-6/5;
{x-y, x-y\[Equal]0}
Out[3]=
{0.,False}
In[4]:=
x=SetPrecision[1234567890123456789012, 21];
y=x-6/5;
{x-y, x-y\[Equal]0}
Out[6]=
{0.,True}
In article <9qokvl$mu2$1 at smc.vnet.net>, Ersek, Ted R says...
>
>Hello Group,
>
>I am using Mathematica Version 4.1.0.0 under Windows 98, but I suspect it
>makes no difference what platform is used.
>
>The following demonstrates an inconsistency with arbitrary precision
>arithmetic. The problem is that the criteria for deciding what numbers are
>displayed as zero is different from the criteria for deciding if a number
>equals zero.
>
>
>In[1]:=
> x=SetPrecision[1234567890123456789012, 21.35];
> y=x-6/5;
> {x-y, x-y==0}
>
>Out[3]=
> {0., False}
>
>
>----------
>For what it's worth, the next line shows that the precision of (x-y) is
>(0.0366) almost zero.
>
>In[4]=
> InputForm[x-y]
>
>Out[4]=
> 1.2`0.0366
>
>-----------
>Regards,
> Ted Ersek
> Check Mathematica Tips, Tricks at
> http://www.verbeia.com/mathematica/tips/Tricks.html
>
>
Adam Smith
Dept. of Physics
Hillsdale College
adam.smith at hillsdale.edu