Don't cast nanoseconds to integers when writing output

This commit is contained in:
khyperia
2020-02-26 15:32:34 +01:00
committed by Martin Hořeňovský
parent 87b5bf77bc
commit 022b61ff92
2 changed files with 9 additions and 13 deletions

View File

@@ -210,15 +210,11 @@ class Duration {
static const uint64_t s_nanosecondsInASecond = 1000 * s_nanosecondsInAMillisecond;
static const uint64_t s_nanosecondsInAMinute = 60 * s_nanosecondsInASecond;
uint64_t m_inNanoseconds;
double m_inNanoseconds;
Unit m_units;
public:
explicit Duration(double inNanoseconds, Unit units = Unit::Auto)
: Duration(static_cast<uint64_t>(inNanoseconds), units) {
}
explicit Duration(uint64_t inNanoseconds, Unit units = Unit::Auto)
explicit Duration(double inNanoseconds, Unit units = Unit::Auto)
: m_inNanoseconds(inNanoseconds),
m_units(units) {
if (m_units == Unit::Auto) {
@@ -247,7 +243,7 @@ public:
case Unit::Minutes:
return m_inNanoseconds / static_cast<double>(s_nanosecondsInAMinute);
default:
return static_cast<double>(m_inNanoseconds);
return m_inNanoseconds;
}
}
auto unitsAsString() const -> std::string {
@@ -698,4 +694,4 @@ CATCH_REGISTER_REPORTER("console", ConsoleReporter)
#if defined(__clang__)
# pragma clang diagnostic pop
#endif
#endif