Re: Updating NumberPadding?

*To*: mathgroup at smc.vnet.net*Subject*: [mg84302] Re: [mg84286] Updating NumberPadding?*From*: Carl Woll <carlw at wolfram.com>*Date*: Tue, 18 Dec 2007 02:20:43 -0500 (EST)*References*: <200712180017.TAA06282@smc.vnet.net>

David Park wrote: >It would certainly be nice if WRI updated NumberPadding so that Style >expressions as well as Strings could be provided for the padding. >Specifically if one uses a font such as Times then NumberPadding -> {" ", >"0"} does not work properly because a single space is not the same width as >the digits, which do all have the same width. Using >Style["0",ShowContents->False] for padding on the right would probably work >but is not allowed. > > > If a fixed width font is out of the question, you could play with the NumberFormat option. For example: Column[{ NumberForm[N@Pi, {5, 2}, NumberPadding -> {"0", "0"}], NumberForm[N@Pi, {5, 2}, NumberPadding -> {" ", "0"}], NumberForm[N@Pi, {5, 2}, NumberPadding -> {" ", "0"}, NumberFormat -> (StringReplace[#1, " " -> ToString[Invisible["0"], TraditionalForm]] &)]} ] You will see that the first number and the last number line up properly. If scientific notation is possible, you will need to adjust the NumberFormat accordingly. For instance, the following will take care of scientific notation: Column[{ NumberForm[N@Pi 10^9, {5, 2}, NumberPadding -> {"0", "0"}], NumberForm[N@Pi 10^9, {5, 2}, NumberPadding -> {" ", "0"}, NumberFormat -> (Row[{StringReplace[#1, " " -> ToString[Invisible["0"], TraditionalForm]], "\[ThinSpace]\[Times]\[ThinSpace]", Superscript[#2, #3]}] &)] }] You can put an If clause on the third argument, comparing it to "", to cover both cases. Carl Woll Wolfram Research

**References**:**Updating NumberPadding?***From:*"David Park" <djmpark@comcast.net>