GxD*_*xDD 0 c++ floating-point int
我正在编写 C++ 代码。我发现“奇怪”的是你不能使用3f,因为 Visual Studio 给出了一个错误“找不到文字运算符”,你只能使用3.f.
为什么不能直接在数字后使用 'f' 文字,而不使用点分隔符 ( 3f)?
以下是标准中的规则:
floating-point-literal:
decimal-floating-point-literal
hexadecimal-floating-point-literal
decimal-floating-point-literal:
fractional-constant exponent-part-opt floating-point-suffix-opt
digit-sequence exponent-part floating-point-suffix-opt
fractional-constant:
digit-sequence-opt . digit-sequence
digit-sequence .
exponent-part:
e sign-opt digit-sequence
E sign-opt digit-sequence
floating-point-suffix: one of
f l F L
Run Code Online (Sandbox Code Playgroud)
如您所见,.如果没有指数部分,则必须始终包含在十进制浮点常量中。
K&R 一书将其解释为:
浮点常量包含小数点 ( 123.4 ) 或指数 ( 1e-2 ) 或两者;它们的类型是 double ,除非有后缀。后缀 f 或 F 表示浮点常数;l 或 L 表示 long double 。
所以,想法是,forl修改一个已经浮点数的常量 ( double) 以具有floator的类型long double。后缀本身不会将非浮点常量转换为浮点常量。
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |