Previous: Bignums, Up: Numbers

##### 3.6.2.3 Flonums

A flonum represents a floating point number. The translation is indirect: a decimal floating point number from the text is converted by `as` to a generic binary floating point number of more than sufficient precision. This generic floating point number is converted to a particular computer's floating point format (or formats) by a portion of `as` specialized to that computer.

A flonum is written by writing (in order)

- The digit ‘`0`’. (‘`0`’ is optional on the HPPA.)
- A letter, to tell `as` the rest of the number is a flonum. `e` is recommended. Case is not important.

  On the H8/300, Renesas / SuperH SH, and AMD 29K architectures, the letter must be one of the letters ‘`DFPRSX`’ (in upper or lower case).

  On the ARC, the letter must be one of the letters ‘`DFRS`’ (in upper or lower case).

  On the Intel 960 architecture, the letter must be one of the letters ‘`DFT`’ (in upper or lower case).

  On the HPPA architecture, the letter must be ‘`E`’ (upper case only).

- An optional sign: either ‘`+`’ or ‘`-`’.
- An optional integer part: zero or more decimal digits.
- An optional fractional part: ‘`.`’ followed by zero or more decimal digits.
- An optional exponent, consisting of:
  - An ‘`E`’ or ‘`e`’.
  - Optional sign: either ‘`+`’ or ‘`-`’.
  - One or more decimal digits.

At least one of the integer part or the fractional part must be present. The floating point number has the usual base-10 value.

`as` does all processing using integers. Flonums are computed independently of any floating point hardware in the computer running `as`.