util: fix UTI_FloatNetworkToHost() with very small exponents

Fix conversion of floating point numbers from the cmdmon format with
very small exponents, as for instance could be in the smoothing report
when the smoothing process ends.

This was broken in commit 8e71a46173.
This commit is contained in:
Miroslav Lichvar 2016-03-17 14:28:45 +01:00
parent ea3950d57e
commit 5833be6ccf

3
util.c
View file

@ -807,9 +807,10 @@ UTI_FloatNetworkToHost(Float f)
x = ntohl(f.f);
exp = (x >> FLOAT_COEF_BITS) - FLOAT_COEF_BITS;
exp = x >> FLOAT_COEF_BITS;
if (exp >= 1 << (FLOAT_EXP_BITS - 1))
exp -= 1 << FLOAT_EXP_BITS;
exp -= FLOAT_COEF_BITS;
coef = x % (1U << FLOAT_COEF_BITS);
if (coef >= 1 << (FLOAT_COEF_BITS - 1))