Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

Re: ToString Awkwardness

  • To: mathgroup at smc.vnet.net
  • Subject: [mg126872] Re: ToString Awkwardness
  • From: James Stein <mathgroup at stein.org>
  • Date: Thu, 14 Jun 2012 05:34:01 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201206130855.EAA03690@smc.vnet.net>

Here are two routines I wrote long ago.
Perhaps they'll be a bit of help...

jhsForm::usage="jhsForm[r,n] -> returns a string to display r with n digits
after the decimal point. If n is larger than the accuracy of the number, n
will be truncated. If n <= 0, 0 will be used.

jhsForm[r,n,w,padChar] ->is as above, except the string will be a least w
characers in width, prepadded with padChar if necessary.";

jhsForm[r_, fD_Integer: - 1] := Module[{nd = 999, fd},
   (* nd,fd are arguments to 'NumberForm' *)
   (*
   fd := # places to right of decimal point *)
   If[Abs[r] == Infinity,
    Return[If[Sign[r] > 0, "=E2=88=9E", "-=E2=88=9E"]]];
   If[fD >= 0,
    fd = fD,
    fd = Max[Min[Accuracy[r], 2]];
    ];
   If[fd == 0,(* elide decimal point: *)
    Return[ToString[Round[r]]],
    Return[ToString[NumberForm[r // N, {nd, fd}]]];
    ];
   ];
jhsForm[r_, fD_: - 1, fW_: 0, pad_: " "] := Module[{s},
   s = jhsForm[r, fD];
   While[StringLength[s] < fW, s = pad <> s];
   s
   ];



On Wed, Jun 13, 2012 at 1:55 AM, Kevin J. McCann <kjm at kevinmccann.com>wrote:

> I have several plots with annotation that includes parameter values. I
> am using ToString inside a Text command to do this, and all is well
> unless the values are small so that the results are in scientific
> notation. When this happens, I get something like this:
>
> "f(x) = " <> ToString[8.71 10^-15]
>
> f(x) =        -15
>        8.71 10
>
> Which is a bit awkward looking in the plot. Upon further investigation,
> I looked at the FullForm of the above and got:
>
> "f(x) =        -15\n8.71 10"
>
> So, I see why the output "looks funny". The exponent is treated
> separately from the 10. Any suggestions for nicer looking output?
>
> Thanks,
>
> Kevin
>
>


  • Prev by Date: Re: modulo solving lacking domain?
  • Next by Date: Re: Varying a constant in an ODE to Manipulate solution
  • Previous by thread: Re: ToString Awkwardness
  • Next by thread: Re: ToString Awkwardness