Fix rounding in UTI_AddDoubleToTimeval with negative increments
This commit is contained in:
parent
41805d572f
commit
62027f1b47
1 changed files with 2 additions and 1 deletions
3
util.c
3
util.c
|
@ -135,7 +135,8 @@ UTI_AddDoubleToTimeval(struct timeval *start,
|
|||
is too marginal here. */
|
||||
|
||||
int_part = (long) increment;
|
||||
frac_part = (long) (0.5 + 1.0e6 * (increment - (double)int_part));
|
||||
increment = (increment - int_part) * 1.0e6;
|
||||
frac_part = (long) (increment > 0.0 ? increment + 0.5 : increment - 0.5);
|
||||
|
||||
end->tv_sec = int_part + start->tv_sec;
|
||||
end->tv_usec = frac_part + start->tv_usec;
|
||||
|
|
Loading…
Reference in a new issue