Tilde G-> General Floating-Point (ANSI and GNU Common Lisp Document)

Next: Tilde Dollarsign-> Monetary Floating-Point, Previous: Tilde E-> Exponential Floating-Point, Up: FORMAT Floating-Point Printers

#### 22.3.3.3 Tilde G: General Floating-Point

The next arg is printed as a float in either fixed-format or exponential notation as appropriate.

The full form is `~w,d,e,k,overflowchar,padchar,exponentcharG`. The format in which to print arg depends on the magnitude (absolute value) of the arg. Let n be an integer such that 10^n-1 \le |arg| < 10^n. Let ee equal e+2, or 4 if e is omitted. Let ww equal w- ee, or nil if w is omitted. If d is omitted, first let q be the number of digits needed to print arg with no loss of information and without leading or trailing zeros; then let d equal `(max q (min n 7))`. Let dd equal d- n.

If 0 \le dd \le d, then arg is printed as if by the format directives

`~ww,dd,,overflowchar,padcharF~ee@T`

Note that the scale factor k is not passed to the `~F` directive. For all other values of dd, arg is printed as if by the format directive

`~w,d,e,k,overflowchar,padchar,exponentcharE`

In either case, an `@` modifier is supplied to the `~F` or `~E` directive if and only if one was supplied to the `~G` directive.

`~G` binds *print-escape* to false

and *print-readably* to false.