double和float数据之间的区别,我们添加f
。但当我试着写:
float Value = 255f;
编译器显示以下错误:
line 50: error (dcc:1633): parse error near 'f'
line 50: error (dcc:1206): syntax error
line 50: fatal error (dcc:1340): can't recover from earlier errors
为什么?
答案 0 :(得分:5)
根据草案n1570,§6.4.4.2,段落¶2
<强>描述强>
浮点常量具有有效位部分,可以跟随指数部分和a 后缀,指定其类型。有效部分的组成部分可以包括数字 表示整数部分的序列,后跟一个句点(。),后跟一个 表示分数部分的数字序列。指数部分的组成部分是 e,E,p或P后跟由任选带符号的数字序列组成的指数。 要么必须存在整数部分或分数部分; 表示十进制浮点数 常数,周期或指数部分必须存在。
我把相关部分加粗,所以你可以看出为什么它不起作用。
请注意,这也意味着
float value = 255e0f;
作品。
答案 1 :(得分:2)
您还需要一段时间,以便编译器接受它:
float Value = 255.f;
这是标准规范的一部分,但我想这是为了简化词法分析器的实现而以这种方式选择的,并且还提高了数字的可读性,因为很容易认为它是十六进制数字。
答案 2 :(得分:0)
我的猜测是你错过了代码中的句号。
float Value = 255.f;
在f之前添加一段时间,你应该好好去。如果这不起作用,请告诉我们您接收的错误。