next up previous contents index
Next: Scan Control (:) and Up: Format Control Descriptors Previous: Blank Control (BN, BZ)

Scale Factor Control (kP)

  The scale factor can be used to introduce a scaling by any power of 10 between internal and external values when E, F, or G descriptors are used. In principle this could be useful when dealing with data which are too large, or too small, for the exponent range of the floating-point data types of the machine, but in other difficulties usually make this impracticable. The scale factor can result in particularly insidious errors when used with F descriptors and should be avoided by all sensible programmers. The rules are as follows.

The initial scale factor in each formatted transfer is zero. It the descriptor kP is used, where k is a small (optionally signed) integer, then it is set to k. It affects all subsequent floating point values transferred by the statement. On input there is no effect if the input field contains an explicit exponent, otherwise

internal-value = external-value / 10k

On output the effect depends on the descriptor used. With E descriptors the decimal point is moved k places to the right and the exponent reduced by k so the effective value is unaltered. With F descriptors there is always a scaling:
external-value = em internal-value * 10k

With G descriptors the scale-factor is ignored if the value is in the range for F-type output, otherwise it has the same effects as with E descriptors.


next up previous contents index
Next: Scan Control (:) and Up: Format Control Descriptors Previous: Blank Control (BN, BZ)
Helen Rowlands
8/27/1998