当我尝试打印long long
整数转换为float
的分区时,在尝试执行以下操作时会得到不同的输出:
printf()
。std::cout
之前使用printf()
。我使用long long
变量作为1000个性能计时器结果的总和,然后对它们取平均值。我可能会做一些递归平均分裂。但我稍后会担心。
无论如何,这里发生了什么。
如果我这样做:
long long sum;
while (j < 1000){
sum += time_record[j];
j++;
}
cout << "Average execution time: "<< sum/1000000 << "ms\n";
printf("Average execution time: %f ms\n", (float)sum/1000000);
我得到的输出是:
Average execution time: 4ms
Average execution time: 4.197688 ms
现在,如果我尝试删除cout
,我会收到此输出:
Average execution time: 140736480.000000 ms
这到底发生了什么?