【发布时间】:2018-10-13 15:44:37
【问题描述】:
我正在查看浮点文字的 C++17 规范并发现了一个问题。单精度如何区分数字F和后缀F?
例如,文字 0x1p0F 是转换为双精度 32768.0L 还是单精度 1.0F?
规范说后缀是可选的,没有后缀表示双精度,因此,正如所写,存在一定的歧义。
【问题讨论】:
标签: c++ floating-point hex c++17 literals
我正在查看浮点文字的 C++17 规范并发现了一个问题。单精度如何区分数字F和后缀F?
例如,文字 0x1p0F 是转换为双精度 32768.0L 还是单精度 1.0F?
规范说后缀是可选的,没有后缀表示双精度,因此,正如所写,存在一定的歧义。
【问题讨论】:
标签: c++ floating-point hex c++17 literals
十六进制浮点文字必须使用p 指数。指数是使用非十六进制数字定义的(一个十进制整数,表示要应用于 2 的指数)。因此,它不能包含“A-F”字符。所以没有歧义。 0x1p0F 的指数为“0”,类型为 float。
【讨论】: