Since it is the last character that is blanked, does it need a
trailing space for a trailing sign?

On Tue, Apr 25, 2017 at 6:07 PM, Charles Mills <charl...@mcn.org> wrote:
> Hmmm. Thanks. Link certainly seems relevant. (Interesting -- the page that
> opens is some weird VM-z/OS hybrid: z/VM z/VM 6.2.0 IBM XL C/C++ for z/VM
> z/OS: XL C/C++ Programming Guide Coding: Advanced Topics Using decimal data
> types in C Programming examples.) But I find the same example in the z/OS
> XLC P/G PDF, so macht nichts.
>
> But I consistently get 'D(*,*' for output. Here is my exact format:
> "%*.*D(*,*)" and I am calling it with 20, 5, &decimal_number, precision,
> scale. (I started out with 20, 5 like in the example just to make my life
> easier.)
>
> Here's a rub. The code is C++ and fixed point decimal support is limited to
> C ... but ... at the Spring TDM I asked a guy from Toronto why the heck the
> fixed point decimal support is only C and not C++. He told me -- very
> interesting story but I am going to play it safe here and assume it is under
> NDA. But he did tell me that I could call printf() from C++ and format fixed
> point decimal with no issues as printf() is a C function, not C++.
>
> I had not added decimal.h to my code as there is no packed logic other than
> the printf() (data comes in from an external source). I added the #include
> but still no joy.
>
> I think I will write to the Toronto guy and ask him the same question I
> asked here.
>
> Charles
>
>
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of David W Noon
> Sent: Tuesday, April 25, 2017 3:32 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Can XLC printf() take "%D(*,*)"?
>
> On Tue, 25 Apr 2017 15:11:09 -0700, Charles Mills (charl...@mcn.org) wrote
> about "Can XLC printf() take "%D(*,*)"?" (in
> <0c3301d2be10$d87ed2b0$897c7810$@mcn.org>):
>
>> I'd like to format fixed point decimal (packed, in other words)
>> numbers in a common subroutine that would be passed the precision and
>> scaling. Can
>> printf() and friends take '*' and then a passed integer for its (n,p)
>> values
>> - analogous to the way printf() width and precision may be specified?
>
> KC offers this:
>
> <https://www.ibm.com/support/knowledgecenter/SSB27U_6.2.0/com.ibm.zos.r12.cb
> cpx01/pex1.htm>
>
> This page contains the following:
>
>  printf("pd02 = %*.*D(*,*)\n",
>           20, 5, digitsof(pd02), precisionof(pd02), pd02);
>
> This appears to do what you want, but you will need to specify the width and
> decimal places for the output field too.
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



-- 
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to