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 ____________________________________________________________________