C ++中数字常量附近的字母?

时间:2010-08-12 16:15:00

标签: c++ variables types

数字常数附近的字母是什么意思?仅举例:

int number = 0;
float decimal = 2.5f;
number = decimal;

2.5f和f2.5有什么区别?我已经查过手册,但我真的无法理解。请以简单的格式解释我。

5 个答案:

答案 0 :(得分:3)

值2.5是双倍,而2.5f是浮点数。除非你有特殊的理由不这样做,否则通常最好使用双打而不是浮点数 - 它们更精确,甚至可能更快。

答案 1 :(得分:2)

来自here

浮点常量默认为double类型。通过使用后缀f或l(或F或L - 后缀不区分大小写),常量可以分别指定为float或long double。

我不认为格式f2.5是合法的。

答案 2 :(得分:2)

  
    

2.5f和f2.5之间有什么区别

  
  • 2.5f是值2.5作为浮点数,
  • f2.5是一个名为“f2”的变量,后跟“.5”,这将是一个语法错误。

答案 3 :(得分:1)

纯粹作为附加信息(不是对问题的直接回答)我注意到要指定字符或字符串文字的类型,你使用前缀(例如,L“宽字符串”),而使用数字文字你使用后缀(例如,2L或3.5f)。

C ++ 0x在前缀后缀中添加了相当多的内容以指定更多数据类型(例如,目前只有窄和宽字符串文字,但C ++ 0x将缩小,宽,Unicode,原始,可能至少还有一些我现在想不到的东西)。它还添加了用户定义的文字,允许您定义自己的后缀,因此150km之类的内容可用于创建distance对象,或"127.0.0.1"ip可用于创建IP_address对象

答案 4 :(得分:0)

f2.5是非法的。 2.5f(或2.5F)强制2.5被解释为float,而不是double。相关地,l / L后缀可以生成整数常量long

我想,

number = decimal会截断后者。