Re: Updating NumberPadding?
- To: mathgroup at smc.vnet.net
- Subject: [mg84329] Re: Updating NumberPadding?
- From: "Kevin J. McCann" <Kevin.McCann at umbc.edu>
- Date: Wed, 19 Dec 2007 04:15:59 -0500 (EST)
- Organization: University System of Maryland
- References: <200712180017.TAA06282@smc.vnet.net> <fk7si4$rl8$1@smc.vnet.net>
Carl, If you raise Pi to zero or a negative power of ten, your last form below does not work correctly, i.e. N[Pi]10^-1 produces 0.31x10. I agree with David that it would be REALLY nice if WRI made it easier for us to produce nice columnar data. I know it is not easy, as the examples below show. I know from my FORTRAN days that a lot of CPU cycles were used on formatted input and output. Still, it would be nice. Kevin Carl Woll wrote: > 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 > -- Kevin J. McCann Research Associate Professor JCET/Physics Physics Building University of Maryland, Baltimore County 1000 Hilltop Circle Baltimore, MD 21250
- References:
- Updating NumberPadding?
- From: "David Park" <djmpark@comcast.net>
- Updating NumberPadding?