MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Printing numbers

  • To: mathgroup at
  • Subject: [mg54540] Re: Printing numbers
  • From: "Matthew McMahon" <matthew.mcmahon at>
  • Date: Tue, 22 Feb 2005 04:24:39 -0500 (EST)
  • Organization: Vanderbilt University usenet news server
  • References: <cvc887$qsa$>
  • Sender: owner-wri-mathgroup at

I believe I can explain the 7, at least.  Try just evaluating each number
alone; for the first case, the output is 123.457, which is 7 chars.  This
works up to 123456.789; you'll get the same output in each case.  For
1234567.89, it converts to scientific notation. If you evaluate
StringForm[ToString[1234567.89]], it takes two lines and ~ 20 chars.  That's
my best guess.  The toString command tries to evaluate the expression before
converting to a string.

"Steve Gray" <stevebg at> wrote in message
news:cvc887$qsa$1 at
> 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

  • Prev by Date: Re: Re: my mathematica no longer renders graphics, even after reinstall
  • Next by Date: Re: "teach" mathematica an integral
  • Previous by thread: Re: Printing numbers
  • Next by thread: Re: Printing numbers