在变量错误中浮动
Float in var bug?
我用它来测量经过的时间:
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 没有".234"?
第一个表达式:
float( clock() - begin_time) / CLOCKS_PER_SEC;
将子表达式clock() - begin_time
转换为浮点值,这意味着整个表达式对应于浮点除法(其结果在您的示例中1.234f
)。
在第二个表达式中:
( clock() - begin_time) / CLOCKS_PER_SEC;
所有参数都是整数类型,因此执行整数除法。其结果是一个整数值(在您的示例中1
)。直到稍后,结果才转换为浮点数(1.0f
),以分配给浮点变量var
。
如果要将结果存储在变量float
var
可以使用:
float var = float( clock() - begin_time ) / CLOCKS_PER_SEC;
cout << var;
相关文章:
- 提升错误:变量"TimeSpec RQTP"具有初始值设定项,但类型不完整
- C++ SPDLOG 编译错误:变量或字段"set_error_handler"声明为无效
- 错误 - 变量类型 "X" 是一个抽象类 - c++
- 带有 std::map 的模板函数给出错误:变量或字段声明为 void
- C 错误变量大小对象可能不会初始化
- 我收到错误"变量类型不完整"无效,我找不到问题所在
- C++以友元身份重载 ostream 运算符会导致错误:变量在此上下文中是私有的
- 错误:变量未在此范围内声明
- 错误:变量未在此范围 C++ 中声明
- 无法访问获取错误变量
- C++错误"变量或字段声明为无效"
- 错误:变量需要堆栈帧
- VS2010 中 C++ lambda 表达式的奇怪错误(变量 y1 )
- 我不断收到错误"变量'b'未初始化正在使用,我不确定如何解决它
- 如何更正运行时错误变量周围的堆栈已损坏
- 错误变量受保护
- 线程池的 lambda 函数内的编译器错误变量"未捕获"
- 接收错误变量的类型不完整"void"
- 运行时错误-变量arr_processes周围的堆栈已损坏
- 错误:变量未在此范围内声明