From 36ba012ffb643cf2f10ef7fdf7c32a72f87561a2 Mon Sep 17 00:00:00 2001 From: Georgios Verigakis Date: Wed, 27 Jan 2016 11:32:36 +0200 Subject: [PATCH] Fix rounding error Reported by paparomeo --- progress/bar.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/progress/bar.py b/progress/bar.py index f62a279..26008e9 100644 --- a/progress/bar.py +++ b/progress/bar.py @@ -65,15 +65,15 @@ class IncrementalBar(Bar): def update(self): nphases = len(self.phases) - expanded_length = int(nphases * self.width * self.progress) - filled_length = int(self.width * self.progress) - empty_length = self.width - filled_length - phase = expanded_length - (filled_length * nphases) + filled_len = self.width * self.progress + nfull = int(filled_len) # Number of full chars + phase = int((filled_len - nfull) * nphases) # Phase of last char + nempty = self.width - nfull # Number of empty chars message = self.message % self - bar = self.phases[-1] * filled_length + bar = self.phases[-1] * nfull current = self.phases[phase] if phase > 0 else '' - empty = self.empty_fill * max(0, empty_length - len(current)) + empty = self.empty_fill * max(0, nempty - len(current)) suffix = self.suffix % self line = ''.join([message, self.bar_prefix, bar, current, empty, self.bar_suffix, suffix])