Commit ab29808a919ac5e653d297a21dca25f3e1cbf853

Authored by Henry Schreiner
1 parent d33ddb9b

Fixing timer print

Showing 1 changed file with 12 additions and 8 deletions
include/CLI/Timer.hpp
... ... @@ -54,18 +54,22 @@ public:
54 54 time_point stop = clock::now();
55 55 std::chrono::duration<double, std::milli> elapsed = stop - start_;
56 56 double time = elapsed.count();
  57 +
  58 + auto print_it = [](double x, std::string unit){
  59 + char buffer[50];
  60 + std::snprintf(buffer, 50, "%.5g", x);
  61 + return buffer + std::string(" ") + unit;
  62 + };
57 63  
58 64 // LCOV_EXCL_START
59   - if(time < 1)
60   - return std::to_string(int(time*1000000)) + " ns";
61   - else if(time < 10)
62   - return std::to_string(int(time*100) / 100.) + " ms";
  65 + if(time < .001)
  66 + return print_it(time*1000000, "ns");
  67 + else if(time < 1)
  68 + return print_it(time*1000, "us");
63 69 else if(time < 1000)
64   - return std::to_string(int(time)) + " ms";
65   - else if(time < 10000)
66   - return std::to_string(int(time*10000) / 10. ) + " s";
  70 + return print_it(time, "ms");
67 71 else
68   - return std::to_string(int(time*1000)) + " s";
  72 + return print_it(time/1000, "s");
69 73 // LCOV_EXCL_END
70 74 }
71 75  
... ...