Re: Errors in handling real numbers ?
- To: mathgroup at smc.vnet.net
- Subject: [mg8698] Re: Errors in handling real numbers ?
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Fri, 19 Sep 1997 02:47:40 -0400
- Organization: University of Western Australia
- Sender: owner-wri-mathgroup at wolfram.com
Piotr G. Kin wrote:
> I was trying to develop a function that would return number of digits
> after the decimal point in a real number. The function would work as
> follows:
>
> In[]:= a = 1. 5.1234;
> b = 1. 0.00123;
> c = 1. 0.5;
> digitsafterdot[{a,b,c}]
>
> Out[]= {4,5,1}
I think that you are wanting to work with fixed precision. Note that
you can enter fixed precision numbers using `
In[1]:= a=5.1234`4;
b=0.00123`5;
c=0.5`1;
In[2]:= Precision/@{a,b,c}
Out[2]= {4,5,1}
Note that, since you actually have expressions like a = 1. 5.1234, you
are multiplying a machine precision number by what I think you intend to
be a fixed precision number.
Note that you can force fixed precision by setting
$MaxPrecision=$MinPrecision=n for integral n.
> It gets even funnier with numbers with precision higher than
> $MachinePrecision:
>
> In[]:= x = 0.20000000000000000;
> NestList[FractionalPart[10#] &, x, 5]
> NestList[(10. # - IntegerPart[10. #]) &, x, 5]
By multiplying by 10. you have coerced the precision to machine
precision. Here is your example again:
In[3]:= NestList(FractionalPart(10 #)&,0.12`20,5)
Out[3]=
-19
{0.12000000000000000000, 0.2000000000000000000, 0. 10 ,
-18 -17 -16
0. 10 , 0. 10 , 0. 10 }
In[4]:= NestList(10 #-IntegerPart(10 #)&,0.12`20,5)
Out[4]=
-19
{0.12000000000000000000, 0.2000000000000000000, 0. 10 ,
-18 -17 -16
0. 10 , 0. 10 , 0. 10 }
The results are now equivalent.
>The information in this message is IN-CONFIDENCE and is intended for
>CSIRO personnel only. Distribution of this information to non-CSIRO personnel
>must be authorised in accordance with CSIRO Code of Conduct (Policy 94/18)
And was it?
Cheers,
Paul
____________________________________________________________________
Paul Abbott Phone: +61-8-9380-2734
Department of Physics Fax: +61-8-9380-1014
The University of Western Australia
Nedlands WA 6907 mailto:paul at physics.uwa.edu.au
AUSTRALIA http://www.pd.uwa.edu.au/~paul
God IS a weakly left-handed dice player
____________________________________________________________________