浮点字面量是浮点常量的十进制或十六进制表示形式。
    十进制浮点字面量由一个整数部分(十进制数字)、一个小数点、一个小数部分(十进制数字)和一个指数部分(eE 后面跟着一个可选的 sign 标记和十进制数字)组成。可以省略掉整数部分或小数部分,也可以省略掉小数点或指数部分。指数值 exp 将尾数(整数和小数部分)缩放为 10exp
    十六进制浮点字面量由一个 0x0X 前缀、一个整数部分(十六进制数字)、一个小数点、一个小数部分(十六进制数字)和一个指数部分(pP 后跟一个可选的 sign 标记和十进制数字)组成。可以省略掉整数部分或小数部分,也可以省略掉小数点,但指数部分是必需的(此语法与 IEEE 754-2008 §5.12.3 中给出的语法相匹配)。指数值 exp 将尾数(整数和小数部分)缩放为 2exp
    为了可读性,下划线 _ 可以出现在基本前缀之后或连续数字之间,这样的下划线不会改变字面量的值。

    1. 浮点字面量 = 十进制浮点字面量 | 十六进制浮点字面量 .
    2. 十进制浮点字面量 = 十进制数字 "." [ 十进制数字 ] [ 十进制指数 ] |
    3. 十进制数字 十进制指数 |
    4. "." 十进制数字 [ 十进制指数 ] .
    5. 十进制指数 = ( "e" | "E" ) [ "+" | "-" ] 十进制数字 .
    6. 十六进制浮点字面量 = "0" ( "x" | "X" ) 十六进制尾数 十六进制指数 .
    7. 十六进制尾数 = [ "_" ] 十六进制数字 "." [ 十六进制数字 ] |
    8. [ "_" ] 十六进制数字 |
    9. "." 十六进制数字 .
    10. 十六进制指数 = ( "p" | "P" ) [ "+" | "-" ] 十进制数字 .
    1. 0.
    2. 72.40
    3. 072.40 // == 72.40
    4. 2.71828
    5. 1.e+0
    6. 6.67428e-11
    7. 1E6
    8. .25
    9. .12345E+5
    10. 1_5. // == 15.0
    11. 0.15e+0_2 // == 15.0
    12. 0x1p-2 // == 0.25
    13. 0x2.p10 // == 2048.0
    14. 0x1.Fp+0 // == 1.9375
    15. 0X.8p-0 // == 0.5
    16. 0X_1FFFP-16 // == 0.1249847412109375
    17. 0x15e-2 // == 0x15e - 2 (integer subtraction)
    18. 0x.p1 // 无效:尾数(整数和小数部分)没有数字
    19. 1p-2 // 无效:p 指数需要十六进制尾数
    20. 0x1.5e-2 // 无效:十六进制尾数需要 p 指数
    21. 1_.5 // 无效:_ 必须将连续的数字分开
    22. 1._5 // 无效:_ 必须将连续的数字分开
    23. 1.5_e1 // 无效:_ 必须将连续的数字分开
    24. 1.5e_1 // 无效:_ 必须将连续的数字分开
    25. 1.5e1_ // 无效:_ 必须将连续的数字分开