我正在学习如何使用SDL制作游戏。在本教程的某个点上,我需要计算游戏的FPS。本教程执行以下操作:
caption << "Average Frames Per Second: " << frame / ( fps.get_ticks() / 1000.f );
现在,我确切知道代码的作用,除了它除以1000.f.的部分。我一直在寻找但是找不到.f的意思。
所以我的问题是,.f是什么意思?为什么会这样?
答案 0 :(得分:19)
1000
是一个int
字面值。
1000.
是一个double
字面值。
1000.f
是一个float
字面值。
答案 1 :(得分:8)
这意味着这是float
常量,而不是double
常量。至于效果,在大多数C ++编译器上,它将无效,因为float
将转换为double
来进行除法。
答案 2 :(得分:6)
.f
输入数字float
。
看看这个有趣的演示:
float a = 3.2;
if ( a == 3.2 )
cout << "a is equal to 3.2"<<endl;
else
cout << "a is not equal to 3.2"<<endl;
float b = 3.2f;
if ( b == 3.2f )
cout << "b is equal to 3.2f"<<endl;
else
cout << "b is not equal to 3.2f"<<endl;
输出:
a不等于3.2
b等于3.2f
在ideone上进行实验:http://www.ideone.com/WS1az
尝试将变量a
的类型从float
更改为double
,再次查看结果!
答案 3 :(得分:5)
它告诉您文字1000.
应该被视为float
。查看here了解详情。
答案 4 :(得分:5)
这意味着1000.f被视为浮动。
答案 5 :(得分:4)
浮点文字的后缀可以是(f,F,l或L)。 “f和F”指定float
常量,“l和L”指定double
。