diff --git a/include/indicators/block_progress_bar.hpp b/include/indicators/block_progress_bar.hpp index dabb901..9c7f8eb 100644 --- a/include/indicators/block_progress_bar.hpp +++ b/include/indicators/block_progress_bar.hpp @@ -200,7 +200,9 @@ private: if (saved_start_time) { auto eta = std::chrono::nanoseconds( - progress_ > 0 ? static_cast(elapsed.count() * max_progress / progress_) : 0); + progress_ > 0 ? static_cast(float(elapsed.count()) * + max_progress / progress_) + : 0); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); details::write_duration(os, remaining); } else { diff --git a/include/indicators/progress_bar.hpp b/include/indicators/progress_bar.hpp index 384e682..e976fbe 100644 --- a/include/indicators/progress_bar.hpp +++ b/include/indicators/progress_bar.hpp @@ -255,8 +255,8 @@ private: if (saved_start_time) { auto eta = std::chrono::nanoseconds( - progress_ > 0 ? static_cast(elapsed_.count() * - (max_progress / progress_)) + progress_ > 0 ? static_cast(float(elapsed_.count()) * + max_progress / progress_) : 0); auto remaining = eta > elapsed_ ? (eta - elapsed_) : (elapsed_ - eta); details::write_duration(os, remaining); diff --git a/include/indicators/progress_spinner.hpp b/include/indicators/progress_spinner.hpp index 72b2668..2fdb199 100644 --- a/include/indicators/progress_spinner.hpp +++ b/include/indicators/progress_spinner.hpp @@ -195,7 +195,9 @@ public: else os << " ["; auto eta = std::chrono::nanoseconds( - progress_ > 0 ? static_cast(elapsed.count() * max_progress / progress_) : 0); + progress_ > 0 ? static_cast(float(elapsed.count()) * + max_progress / progress_) + : 0); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); details::write_duration(os, remaining); os << "]"; diff --git a/single_include/indicators/indicators.hpp b/single_include/indicators/indicators.hpp index d12227a..c8a48f6 100644 --- a/single_include/indicators/indicators.hpp +++ b/single_include/indicators/indicators.hpp @@ -1788,8 +1788,8 @@ private: if (saved_start_time) { auto eta = std::chrono::nanoseconds( - progress_ > 0 ? static_cast(elapsed_.count() * - (max_progress / progress_)) + progress_ > 0 ? static_cast(float(elapsed_.count()) * + max_progress / progress_) : 0); auto remaining = eta > elapsed_ ? (eta - elapsed_) : (elapsed_ - eta); details::write_duration(os, remaining); @@ -2089,8 +2089,8 @@ private: if (saved_start_time) { auto eta = std::chrono::nanoseconds( - progress_ > 0 ? static_cast(elapsed.count() * - (max_progress / progress_)) + progress_ > 0 ? static_cast(float(elapsed.count()) * + max_progress / progress_) : 0); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); details::write_duration(os, remaining); @@ -2798,8 +2798,8 @@ public: else os << " ["; auto eta = std::chrono::nanoseconds( - progress_ > 0 ? static_cast(elapsed.count() * - (max_progress / progress_)) + progress_ > 0 ? static_cast(float(elapsed.count()) * + max_progress / progress_) : 0); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); details::write_duration(os, remaining);