Re: Printing numbers

• To: mathgroup at smc.vnet.net
• Subject: [mg54511] Re: [mg54483] Printing numbers
• From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
• Date: Tue, 22 Feb 2005 04:23:11 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```>-----Original Message-----
>From: Steve Gray [mailto:stevebg at adelphia.net]
To: mathgroup at smc.vnet.net
>Sent: Monday, February 21, 2005 9:45 AM
>To: mathgroup at smc.vnet.net
>Subject: [mg54511] [mg54483] Printing numbers
>
>1. Can anyone tell me why these results are what they are?
>Neither answer is what I would expect, which is 10. The two
>strings are the same length.
>
>Print[StringLength[ToString[123.456789]], "   ",
>        StringLength[ToString[1234567.89]]];
>7    22
>
>2. Is there a simple, easily available or self-evident way to
>get numbers printed out such that the total  number of spaces
>occupied by the print before the decimal point is some fixed,
>user-specified amount, the number of spaces occupied after the
>decimal point is a different user-specified amount, and the
>number of spaces following the number is a third
>user-specified amount. The goal is to easily produce aligned
>columns of numerical printing, which would seem to be the most
>trivial task in neat number printing.
>	For example if the function is called fprint,
>fprint[345.678,4,5,6] would print 4 spaces followed by 5
>character positions to the left of the point (00345 or (2
>spaces)" 345", specified by another argument), and 6 to its
>right. So fprint[345.678,4,5,6] would print (4 spaces)(2
>spaces)"345.678"(3 spaces), or if desired (4 spaces)(2
>spaces)"345.678000"(no spaces), the total taking up 16
>positions. Also fprint[-345.678,4,5,6] would print (4
>spaces)(1 space)"-345.678"(3 spaces), also taking 16
>positions, with the decimal points aligned with the first example.
>	Help is not that helpful, implying that I have to write
>one or find it somewhere. As I recall, C provides an easy way
>to do this by setting arguments to Print.
>
>Steve Gray
>
>
>

Steve,

1. observe:

In[25]:=
ToString /@ {123.456789, 1234567.89} // FullForm
Out[25]//FullForm=
List["123.457", "          6\n1.23457 10"]

If you count, you'll find 7 and 22  ("\n" counts as one!)

2. For comparison with fprint check:

Print[">>", "   ",
AccountingForm[345.678, {11, 6}, NumberPadding -> {"0", " "},
NumberSigns -> {"-", " "}, SignPadding -> True], "<<"]

Print[">>", "   ",
AccountingForm[-345.678, {11, 6}, NumberPadding -> {" ", "0"},
NumberSigns -> {"-", " "}, SignPadding -> False], "<<"]

Print["   ",
NumberSigns -> {"-", ""}, SignPadding -> True,
ExponentFunction -> (Null &)]] & /@ {-123.456789, 1234567.89};

Also look up NumberForm, PaddedForm, etc. and their options.

--
Hartmut Wolf

```

• Prev by Date: Re: Re: Re: Bug in 5.1??
• Next by Date: Re: my mathematica no longer renders graphics, even after reinstall
• Previous by thread: Re: Printing numbers
• Next by thread: Re: Printing numbers