使用cout + printf vs printf时输出不同

时间:2015-06-12 04:22:00

标签: c++ printf number-formatting cout

当我尝试打印long long整数转换为float的分区时,在尝试执行以下操作时会得到不同的输出:

  1. 使用printf()
  2. std::cout之前使用printf()
  3. 我使用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
    

    这到底发生了什么?

0 个答案:

没有答案