 
 
 
 
 
 
Re: Why Doesn't N[Pi,i] Give i Digits For Small i, Mathematica 4,on NT
- To: mathgroup at smc.vnet.net
- Subject: [mg20248] Re: [mg20220] Why Doesn't N[Pi,i] Give i Digits For Small i, Mathematica 4,on NT
- From: David Withoff <withoff at wolfram.com>
- Date: Fri, 8 Oct 1999 18:30:21 -0400
- Sender: owner-wri-mathgroup at wolfram.com
> If I execute:
> 
> Table[{i, N[Pi, i]}, {i, 1, 20}]
> 
> I get:
> 
> {{1, 3.14159}, {2, 3.14159}, {3, 3.14159}, {4, 3.14159}, {5, 3.14159},
> {6,  3.14159}, {7, 3.14159}, {8, 3.14159}, {9, 3.14159}, {10, 3.14159},
> {11, 3.14159}, {12, 3.14159}, {13, 3.14159}, {14, 3.14159}, {15,
> 3.14159}, {16, 3.14159}, {17, 3.1415926535897932},
> {18, 3.14159265358979324}, {19, 3.141592653589793238},
> {20, 3.1415926535897932385}}
> 
> I'd expect something like
> {{1,3},{2,3.1},{3,3.14},{4,3.141},{5,3.1416},{6,3.14159},{7,3.141593},....
> 
> It seems N[] only works as expected above 16 digits of requested
> precision.
> 
> Is my expectation wrong?  What should I do to get what I want?
> 
> My platform is WinNT 4 SP4.
N[expr, i] for i less than machine precision does the calculation
using machine precision and returns a machine number as a result.
Machine numbers are displayed using the default precision (6 digits).
You can use SetPrecision to set a precision less than machine precision.
In[1]:= Table[{i, SetPrecision[Pi, i]}, {i, 1, 5}]
Out[1]= {{1, 3.}, {2, 3.1}, {3, 3.14}, {4, 3.142}, {5, 3.1416}}
If you just want to control the display, you can do that using
functions such as NumberForm.
In[2]:= Table[{i, NumberForm[N[Pi],i]}, {i, 1, 5}]
Out[2]= {{1, 3.}, {2, 3.1}, {3, 3.14}, {4, 3.142}, {5, 3.1416}}
You can change the default display precision in OutputForm using
Developer`SetSystemOptions["MachineRealPrintPrecision" -> i] or
in StandardForm or TraditionalForm using the PrintPrecision option
in the Option Inspector.
Dave Withoff
Wolfram Research

