Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Using (s)printf()

by Br'er Rabbit (Initiate)
on Aug 31, 2016 at 13:17 UTC ( #1170879=note: print w/replies, xml ) Need Help??

in reply to Using (s)printf()

Having studied the article, I, the newest monk, still can't cipher how to print two floating-point numbers so they'll align On The Decimal, so the numbers may be added properly, pencilularly. e.g., print 0.12345 and -123456.12 to align thusly (oh, please let my spaces be preserved!):
0.12345 -123456.12
I know I'm not the only monk that seeks this. There is that other fellow in Andalusia.

Replies are listed 'Best First'.
Re^2: Using (s)printf()
by RichardK (Parson) on Aug 31, 2016 at 18:03 UTC

    Try this

    perl -E 'printf("%12.4f\n",12.34)'


    >     12.3400

    see the docs for sprintf for much more detail :) but in brief it's "%<length>.<dp>f"

Re^2: Using (s)printf()
by Br'er Rabbit (Initiate) on Aug 31, 2016 at 13:34 UTC
    Ahhh, but Re-studying the article, the thought arises that the answer might lie with "sprintf()", using it to convert to a string which can be fed to string-processing functions to find the location of the '.' and to identify, and reserve, the parts before and after. Perhaps?

      Trailing whitespace can be a bit tricky. Maybe something like:

      c:\@Work\Perl\monks>perl -wMstrict -le "for my $n (qw( 0.12345 -0.12345 123456.12 -123456.12 123456.12345 -123456.12345 )) { my ($left, $right) = (7, 5); my $s = sprintf qq{%${left}s.%-${right}s}, split m{[.]}xms, $n, 2; print qq{'$s'}; } " ' 0.12345' ' -0.12345' ' 123456.12 ' '-123456.12 ' ' 123456.12345' '-123456.12345'

      Give a man a fish:  <%-{-{-{-<

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1170879]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2017-10-21 02:14 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (269 votes). Check out past polls.