浮在var bug?

时间:2015-04-27 23:05:14

标签: c++ variables

我用它来测量经过的时间:

const clock_t begin_time = clock();
// code here

cout << float( clock () - begin_time ) /  CLOCKS_PER_SEC;   //return 1.234

float var = ( clock () - begin_time ) /  CLOCKS_PER_SEC;
cout << var;                                                //return 1

请解释我,我不明白发生了什么。

编辑: 为什么印刷的var没有&#34; .234&#34; ?

1 个答案:

答案 0 :(得分:0)

第一个表达:

float( clock() - begin_time) / CLOCKS_PER_SEC;

将subsexpression clock() - begin_time转换为浮点值,这意味着整个表达式对应于浮点除法(在您的示例中,结果为1.234f)。

在第二个表达式中:

( clock() - begin_time) / CLOCKS_PER_SEC;

所有参数都是整数类型,因此执行整数除法。结果是整数值(在您的示例中为1)。仅在稍后将结果转换为float(1.0f)以分配给浮点变量var

如果您想将结果存储在float变量var中,可以使用:

float var = float( clock() - begin_time ) / CLOCKS_PER_SEC;
cout << var;