From abf1d0b09798a2c0b290be551a903f927efa4540 Mon Sep 17 00:00:00 2001 From: "osdl.net!shemminger" Date: Tue, 19 Oct 2004 19:51:41 +0000 Subject: [PATCH] fix scaling in print_rates (for bits). (Logical change 1.95) --- ChangeLog | 4 ++++ tc/tc_util.c | 25 +++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4ceebab8..7382ca8c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-10-19 Michal + + * fix scaling in print_rates (for bits) + 2004-09-28 Stephen Hemminger * fix build problems with arpd and pthread diff --git a/tc/tc_util.c b/tc/tc_util.c index 5cc9e38a..20843de6 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -183,22 +183,19 @@ void print_rate(char *buf, int len, __u32 rate) extern int use_iec; if (use_iec) { - if (tmp >= 1024*1023 && - fabs(1024*1024*rint(tmp/(1024*1024)) - tmp) < 1024) - snprintf(buf, len, "%gMibit", rint(tmp/(1024*1024))); - else if (tmp >= 1024-16 && fabs(1024*rint(tmp/1024) - tmp) < 16) - snprintf(buf, len, "%gKibit", rint(tmp/1024)); + if (tmp >= 1000.0*1024.0*1024.0) + snprintf(buf, len, "%.0fMibit", tmp/1024.0*1024.0); + else if (tmp >= 1000.0*1024) + snprintf(buf, len, "%.0fKibit", tmp/1024); else - snprintf(buf, len, "%ubit", rate); - - } else { - if (tmp >= 999999 && - fabs(1000000.*rint(tmp/1000000.) - tmp) < 1000) - snprintf(buf, len, "%gMbit", rint(tmp/1000000.)); - else if (tmp >= 990 && fabs(1000.*rint(tmp/1000.) - tmp) < 10) - snprintf(buf, len, "%gKbit", rint(tmp/1000.)); + snprintf(buf, len, "%.0fbit", tmp); + } else { + if (tmp >= 1000.0*1000000.0) + snprintf(buf, len, "%.0fMbit", tmp/1000000.0); + else if (tmp >= 1000.0 * 1000.0) + snprintf(buf, len, "%.0fKbit", tmp/1000.0); else - snprintf(buf, len, "%ubit", rate); + snprintf(buf, len, "%.0fbit", tmp); } }