##
2.4.5 Floating point literals

Floating point literals are described by the following lexical definitions:

      floatnumber:    pointfloat | exponentfloat
      pointfloat:     [intpart] fraction | intpart "."
      exponentfloat:  (nonzerodigit digit* | pointfloat) exponent
      intpart:        nonzerodigit digit* | "0"
      fraction:       "." digit+
      exponent:       ("e"|"E") ["+"|"-"] digit+

Note that the integer part of a floating point number cannot look like an octal integer, though the exponent may look like an octal literal but will always be interpreted using radix 10. For example, "`1e010`" is legal, while "`07.1`" is a syntax error. The allowed range of floating point literals is implementation-dependent. Some examples of floating point literals:

      3.14    10.    .001    1e100    3.14e-10

Note that numeric literals do not include a sign; a phrase like `-1` is actually an expression composed of the operator `-` and the literal `1`.