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,18 +54,22 @@ public:
54 time_point stop = clock::now(); 54 time_point stop = clock::now();
55 std::chrono::duration<double, std::milli> elapsed = stop - start_; 55 std::chrono::duration<double, std::milli> elapsed = stop - start_;
56 double time = elapsed.count(); 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 // LCOV_EXCL_START 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 else if(time < 1000) 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 else 71 else
68 - return std::to_string(int(time*1000)) + " s"; 72 + return print_it(time/1000, "s");
69 // LCOV_EXCL_END 73 // LCOV_EXCL_END
70 } 74 }
71 75