[Date Index]
[Thread Index]
[Author Index]
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.
> Leads would be appreciated.
>
>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[" ",
PaddedForm[#, {20, 10}, NumberPadding -> {":", "."},
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**
| |