diff options
-rw-r--r-- | test/dump.h | 3 | ||||
-rw-r--r-- | test/number.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/test/dump.h b/test/dump.h index 6bff4aa..1adfbe6 100644 --- a/test/dump.h +++ b/test/dump.h @@ -323,7 +323,8 @@ static void dump_fixed(fixed f, char **ptr) { #define ABS(x) ((x) < 0 ? -(x) : (x)) uint32_t uintpart = FIXTOINT(ABS(f)); - uint32_t fracpart = ((ABS(f) & 0x3ff) * 1000) / (1 << 10); + /* + 500 to ensure round to nearest (division will truncate) */ + uint32_t fracpart = ((ABS(f) & 0x3ff) * 1000 + 500) / (1 << 10); #undef ABS size_t flen = 0; char tmp[20]; diff --git a/test/number.c b/test/number.c index 1f4f9d9..46b2fda 100644 --- a/test/number.c +++ b/test/number.c @@ -129,7 +129,8 @@ void print_fixed(char *buf, size_t len, fixed f) { #define ABS(x) ((x) < 0 ? -(x) : (x)) uint32_t uintpart = FIXTOINT(ABS(f)); - uint32_t fracpart = ((ABS(f) & 0x3ff) * 1000) / (1 << 10); + /* + 500 to ensure round to nearest (division will truncate) */ + uint32_t fracpart = ((ABS(f) & 0x3ff) * 1000 + 500) / (1 << 10); #undef ABS size_t flen = 0; char tmp[20]; |