没有分数部分的浮点数据

时间:2015-02-17 18:17:13

标签: c types

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  

为什么?

3 个答案:

答案 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之前添加一段时间,你应该好好去。如果这不起作用,请告诉我们您接收的错误。