From 68a3902dc533a66c1377409b34904f730ae4a7ef Mon Sep 17 00:00:00 2001
From: Laslo Hunhold <dev@frign.de>
Date: Sat, 19 May 2018 20:09:38 +0200
Subject: [PATCH] Increase precision in netspeeds.c
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

First dividing by interval before multiplying with 1000 decreases the
precision by +-(interval - 1) * 1000, as interval arithmetic always
applies the Gauß-function to the result.

This is not necessary and simply reordering the operations mitigates
this.
---
 components/netspeeds.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/components/netspeeds.c b/components/netspeeds.c
index 6adc3ea..32e78d6 100644
--- a/components/netspeeds.c
+++ b/components/netspeeds.c
@@ -26,8 +26,8 @@
 			return NULL;
 		}
 
-		return oldrxbytes ? fmt_scaled((rxbytes - oldrxbytes) /
-		                               interval * 1000) : NULL;
+		return oldrxbytes ? fmt_scaled((rxbytes - oldrxbytes) *
+		                               1000 / interval) : NULL;
 	}
 
 	const char *
@@ -49,8 +49,8 @@
 			return NULL;
 		}
 
-		return oldtxbytes ? fmt_scaled((txbytes - oldtxbytes) /
-		                               interval * 1000) : NULL;
+		return oldtxbytes ? fmt_scaled((txbytes - oldtxbytes) *
+		                               1000 / interval) : NULL;
 	}
 #elif defined(__OpenBSD__)
 	#include <string.h>
@@ -88,8 +88,8 @@
 			return NULL;
 		}
 
-		return oldrxbytes ? fmt_scaled((rxbytes - oldrxbytes) /
-		                               interval * 1000) : NULL;
+		return oldrxbytes ? fmt_scaled((rxbytes - oldrxbytes) *
+		                               1000 / interval) : NULL;
 	}
 
 	const char *
@@ -121,7 +121,7 @@
 			return NULL;
 		}
 
-		return oldtxbytes ? fmt_scaled((txbytes - oldtxbytes) /
-		                               interval * 1000) : NULL;
+		return oldtxbytes ? fmt_scaled((txbytes - oldtxbytes) *
+		                               1000 / interval) : NULL;
 	}
 #endif