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