From 3edf220cf0fc9d896b41f7caa0fc35f3ed40e300 Mon Sep 17 00:00:00 2001 From: Ramon Fried Date: Sat, 20 Apr 2019 11:27:38 +0300 Subject: [PATCH] use double in size printing to produce .2 precision --- misc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/misc.c b/misc.c index c252515..3814271 100644 --- a/misc.c +++ b/misc.c @@ -118,17 +118,18 @@ void lltostr(uint64_t val, char *buf, int base) int sprintf_size(uint64_t val, char *buf) { int ret; + double f_val = val; if (val >= PB) - ret = sprintf(buf, "%luPB", val >> 50); + ret = sprintf(buf, "%.2lfPB", f_val / PB); else if (val >= TB) - ret = sprintf(buf, "%luTB", val >> 40); + ret = sprintf(buf, "%.2lfTB", f_val / TB); else if (val >= GB) - ret = sprintf(buf, "%luGB", val >> 30); + ret = sprintf(buf, "%.2lfGB", f_val / GB); else if (val >= MB) - ret = sprintf(buf, "%luMB", val >> 20); + ret = sprintf(buf, "%.2lfMB", f_val / MB); else if (val >= KB) - ret = sprintf(buf, "%luKB", val >> 10); + ret = sprintf(buf, "%.2lfKB", f_val / KB); return ret; }