| Flonums

Previous | Number Constants |

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. The version of `as` used by TIGCC does not use TI's SMAP II BCD format; it emits standard IEEE floating point numbers. It would be pointless to implement the correct behavior, since the appropriate numbers are easy to write, and converting between base 2 and 10 can decrease precision.
A flonum is written by writing (in order)

- The digit `0`.
- A letter, to tell `as` the rest of the number is a flonum.
- 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`.