From f70b7c9772f23a8e370e88c856541c36fddcb2a7 Mon Sep 17 00:00:00 2001 From: Egor Makrushin Date: Tue, 23 Jan 2024 12:28:34 +0300 Subject: [PATCH] Explicitly convert type to double to avoid losing precision Division between integers will also be integer. Thus, to preserve fractional part explicitly convert first operand to double. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: 28d54aab05 ("examples: Introduce domtop") Signed-off-by: Egor Makrushin Reviewed-by: Martin Kletzander --- examples/c/domain/domtop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/c/domain/domtop.c b/examples/c/domain/domtop.c index dd35ec8661..65663a1c39 100644 --- a/examples/c/domain/domtop.c +++ b/examples/c/domain/domtop.c @@ -224,7 +224,7 @@ print_cpu_usage(size_t cpu, * performed has a bad effect on the precision, so instead of dividing * @now_params and @then_params by 1000 and then multiplying again by * 100, we divide only once by 10 and get the same result. */ - usage = (now_params[pos].value.ul - then_params[pos].value.ul) / + usage = (double)(now_params[pos].value.ul - then_params[pos].value.ul) / (now - then) / 10; if (delim)