No: see https://www.ibm.com/support/knowledgecenter/SSY2V3_5.3.0/lr/resarithoprt.html#resarithoprt__fig16, Tables 3 and 4. For 4/3, the scale factor is 1, not 0.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of Robin Vowels <robi...@dodo.com.au> Sent: Sunday, September 6, 2020 8:09 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Constant Identifiers ----- Original Message ----- From: "Paul Gilmartin" <0000000433f07816-dmarc-requ...@listserv.ua.edu> Sent: Sunday, September 06, 2020 11:07 PM On Sun, 6 Sep 2020 17:25:45 +1000, Robin Vowels wrote: >>> And C: 662 $ cat typetest.c #include <stdio.h> int main() { printf( "%10.6f\n", 4/3 * 3.14159 ); printf( "%10.6f\n", 4.0/3 * 3.14159 ); } 663 $ gmake typetest && ./typetest cc typetest.c -o typetest 3.141590 4.188787 It ought to depend on the types of the operands of the polymorphic operator, '/'. What are the default types of '4' and '3'? The type and precision of constants are as written. Thus, both 4 and 3 are FIXED DECIMAL (1). > Does PL/I entirely lack an integer divide? PL/I can do integer division. When the operands are of maximum precision, anm integer result is produced. Thus, for DECLARE (I, J) FIXED BINARY (31); then I / J; produces an integer result of precision (31,0). Similarly of I and J were defined with maximum precision. Also, as Seymour Metz points out, the DIVIDE built-in function may be used to produce an integer result. Or, you can go ahead with the division, and the result will be truncated to an integer by assigning to an integer variable. However, that wastes time with unnecessary computation. --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN