Re: precision of numbers
- To: mathgroup at smc.vnet.net
- Subject: [mg54092] Re: [mg54056] precision of numbers
- From: "Christoph Lhotka" <lhotka at astro.univie.ac.at>
- Date: Thu, 10 Feb 2005 02:46:40 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On Wed, 9 Feb 2005 09:27:29 -0500 (EST) fartous at mail15.com wrote: > in the product: > 15525600000*445.25*24 > the output is: > 1.65907*(10^14) > also when we use: > N[15525600000*445.25*24, 15] > the output is 1.65907*(10^14) > but i want the precise number: > 165906561600000 > what could i do > jack > Hello When you use a point anywhere in your expression, Mathematica treats the numbers in the output automatically as machine or arbitrary precision numbers, so if you want exaxt results don´t use it: In[..]:= 15525600000*(445 + 1/4)*24 Out[..]:= 165906561600000 well, you can specifiy the accuracy by adding the NumberMark `precision: In[..]:= 15525600000*445.25`20*24 Out[..]:= 1.6590656160000000000×10^14 (without specifying, the default is $MachinePrecision (16, or somehting like that) Well, if you want to controll the number of digits, Mathematica should print out, use NumberForm. In[..]:= NumberForm[15525600000*445.25`20*24, 13] Out[..]:=1.659066×10^14 The answer to your question is AccountingForm which forces Mathematica not to use scientific notation: In[..]:=15525600000*445.25*24// AccountingForm Out[..]:=165906561600000. (But as you can see, the dot at the end indicates, that the number is floating - point not exact) With the Function N[exp,n] Mathematica tries to find an n-digit approximation to the expression exp. This is a diffrerent approach, as you can see with this example: In[..]:= N[15525600000*(445 + 1/4)*24, 20] // AccountingForm Out[..]:= 165906561600000.00000 Look the Help Browser for more details (see also ScientificForm, EngineringForm, Precision,Accuracy,...) A question to other users: Which option in the Options Inspector defines the number of digits, Mathematica should print out by default, when formatting machine precision numbers. I want to tell Mathematica to print out all known digits by default, without specifying it with number marks In[..]:=0.25 Out[..]:=0.2500000000000000 Christoph Lhotka