diff --git a/src/libCom/osi/epicsTime.cpp b/src/libCom/osi/epicsTime.cpp index 99c696395..817ffe9c6 100644 --- a/src/libCom/osi/epicsTime.cpp +++ b/src/libCom/osi/epicsTime.cpp @@ -461,7 +461,7 @@ epicsTime epicsTime::operator + (const double &rhs) const if (rhs >= 0) { secOffset = static_cast (rhs); fnsec = rhs - secOffset; - nSecOffset = static_cast (fnsec * nSecPerSec); + nSecOffset = static_cast ( (fnsec * nSecPerSec) + 0.5 ); newSec = this->secPastEpoch + secOffset; // overflow expected newNSec = this->nSec + nSecOffset; @@ -473,7 +473,7 @@ epicsTime epicsTime::operator + (const double &rhs) const else { secOffset = static_cast (-rhs); fnsec = rhs + secOffset; - nSecOffset = static_cast (-fnsec * nSecPerSec); + nSecOffset = static_cast ( (-fnsec * nSecPerSec) + 0.5 ); newSec = this->secPastEpoch - secOffset; // underflow expected if (this->nSec>=nSecOffset) {