Re: A strange precision behavior?
- To: mathgroup at smc.vnet.net
- Subject: [mg90401] Re: A strange precision behavior?
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Tue, 8 Jul 2008 02:27:56 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <g4smba$2g$1@smc.vnet.net>
Aaron Fude wrote:
> The following two commands result in different values:
>
> SetPrecision[0.01, 50]
> 0.01`50
>
> Is that because in the first case, 0.01 is first represented as a
> double and then passed to SetPrecision, while in the second case,
> Mathematica gets a chance to interprete 0.01 as 1/100?
Correct.
Note that in the first case, first a machine-precision number is
created, then the precision of this number is set (converted) to 50. In
the second case, a number is created to a precision of fifty out of the
box, i.e. no conversion from lower to higher precision.
In[1]:= SetPrecision[0.01, 50]
x = 0.01;
RealDigits[x]
Precision[x]
$MachinePrecision
SetPrecision[x, 50]
y = 0.01`50
RealDigits[y]
Precision[y]
SetPrecision[y, 50]
Out[1]= 0.010000000000000000208166817117216851329430937767029
Out[3]= {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, -1}
Out[4]= MachinePrecision
Out[5]= 15.9546
Out[6]= 0.010000000000000000208166817117216851329430937767029
Out[7]= 0.010000000000000000000000000000000000000000000000000
Out[8]= {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0}, -1}
Out[9]= 50.
Out[10]= 0.010000000000000000000000000000000000000000000000000
Regards,
-- Jean-Marc