tvdiff_secs(): sub-zero time difference adjustment
Skip a floating point addition operation when integral part of time difference is zero. This avoids potential floating point addition rounding problems while preserving decimal part value.
This commit is contained in:
@@ -123,8 +123,11 @@ long tool_tvdiff(struct timeval newer, struct timeval older)
|
||||
*/
|
||||
double tool_tvdiff_secs(struct timeval newer, struct timeval older)
|
||||
{
|
||||
return (double)(newer.tv_sec-older.tv_sec)+
|
||||
(double)(newer.tv_usec-older.tv_usec)/1000000.0;
|
||||
if(newer.tv_sec != older.tv_sec)
|
||||
return (double)(newer.tv_sec-older.tv_sec)+
|
||||
(double)(newer.tv_usec-older.tv_usec)/1000000.0;
|
||||
else
|
||||
return (double)(newer.tv_usec-older.tv_usec)/1000000.0;
|
||||
}
|
||||
|
||||
/* return the number of seconds in the given input timeval struct */
|
||||
|
Reference in New Issue
Block a user