From 8c8de4309249ed5a8af1115541ad375b74ebcd7a Mon Sep 17 00:00:00 2001 From: "Gary E. Miller" Date: Fri, 5 Jun 2015 11:03:21 -0700 Subject: Revert a change to TSTONS() that caused loss of precision. Using NS_IN_SEC instead of 1e9 in double math causes loss of precision. --- timespec.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'timespec.h') diff --git a/timespec.h b/timespec.h index d1ee3d3d..5fd7fe1e 100644 --- a/timespec.h +++ b/timespec.h @@ -94,8 +94,9 @@ static inline void TS_NORM( struct timespec *ts) /* convert a timespec to a double. * if tv_sec > 2, then inevitable loss of precision in tv_nsec - 8 so best to NEVER use TSTONS() */ -#define TSTONS(ts) ((double)((ts)->tv_sec + ((ts)->tv_nsec / NS_IN_SEC))) + * so best to NEVER use TSTONS() + * WARNING replacing 1e9 with NS_TO_SEC casues loss of precision */ +#define TSTONS(ts) ((double)((ts)->tv_sec + ((ts)->tv_nsec / 1e9))) #define TIMESPEC_LEN 22 /* required length of a timespec buffer */ -- cgit v1.2.1