Round results for average calculation
authorMikael Berthe <mikael@lilotux.net>
Mon, 20 Feb 2017 22:41:58 +0100
changeset 7 17a1a3f4fb86
parent 6 9b16361e7950
child 8 366f991716a9
Round results for average calculation
gobm65.go
--- a/gobm65.go	Sun Feb 19 17:06:48 2017 +0100
+++ b/gobm65.go	Mon Feb 20 22:41:58 2017 +0100
@@ -307,9 +307,12 @@
 	}
 
 	if *avg && avgCount > 0 {
-		avgMeasure.Systolic /= avgCount
-		avgMeasure.Diastolic /= avgCount
-		avgMeasure.Pulse /= avgCount
+		roundDivision := func(a, b int) int {
+			return int(0.5 + float64(a)/float64(b))
+		}
+		avgMeasure.Systolic = roundDivision(avgMeasure.Systolic, avgCount)
+		avgMeasure.Diastolic = roundDivision(avgMeasure.Diastolic, avgCount)
+		avgMeasure.Pulse = roundDivision(avgMeasure.Pulse, avgCount)
 
 		fmt.Printf("Average: %d;%d;%d\n", avgMeasure.Systolic,
 			avgMeasure.Diastolic, avgMeasure.Pulse)