For F-Format output conversion, an arithmetic or string value from the format list of a PUT statement is converted to a fixed-point decimal value that is then rounded and formatted as a character string of w characters containing a value with d fractional digits.
If d = 0, or if d is omitted, the source value is converted to a fixed-point decimal value with no fractional digits, and the resulting integer value is placed, right-justified, in the field of w blank characters with leading zeros suppressed. (The value zero has one zero digit.) For negative values, the first significant digit is preceded by a minus sign. If the value and its sign cannot fit in w characters, the ERROR condition is signaled.
The following results are produced by an F(4) format.
| Value | Result |
|---|---|
| 0 | 0
|
| 25 | 25
|
| -8 | -8
|
| 13.5 | 14
|
| 17.08 | 17
|
| 1000 | 1000 |
| -1000 | invalid |
If d^= 0, the source value is converted to a fixed-point decimal value with d+1 fractional digits. The value is rounded by adding 5 to the last fractional digit; the last fractional digit is then deleted. The resulting value is placed, right-justified, in a field of w characters with leading integral zero digits suppressed by blanks (fractional values and zero have one integral zero digit). The leading digit is preceded by a minus sign if the value is negative. If the value, its decimal point, and its sign cannot fit in w characters, the ERROR condition is signaled. For the maximum precision allowed by Open PL/I, see your Open PL/I User's Guide.
The following results are produced by an F(5,2) format.
| Source | Field |
|---|---|
| 0 | 0.00
|
| -1 | -1.00 |
| .005 | 0.01
|
| .0005 | 0.00
|
| 10 | 10.00 |
| -10 | invalid |