我用它来测量经过的时间:
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; ?
答案 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;