ich habe einen Script mit einem Counter - mehrere Buttens die einen wert addieren oder subtrahieren.
Nun ist mir aufgefallen, wenn ich öfters auf +0.1 Drücke dann kommt als Ergebnis 0,89999
Stimmt nicht - sollte 0,90 da setehen ...
Nun dachte ich ich kann das mit round(,2) in den Griff bekommen ... leider ohne Erfolg ...
Siehe:
Code: Alles auswählen
def increase(self):
zehner=0.1
roundzehner=round(zehner,1)
self.value += roundzehner
danke für euere Hilfe!
Code: Alles auswählen
import tkinter as tk
class Counter(object):
def __init__(self, start_value=0.0):
self.value = start_value
def increase(self):
zehner=0.1
roundzehner=round(zehner,1)
self.value += roundzehner
def increase1(self):
self.value += 1.00
def increase10(self):
self.value += 10.00
def decrease(self):
self.value -= 0.1
def decrease1(self):
self.value -= 1
def decrease10(self):
self.value -= 10
class CounterUI(tk.Frame):
def __init__(self, master, counter):
tk.Frame.__init__(self, master)
# Counter plus
self.counter = counter
tk.Button(self, text='+0,1', command=self.increase).pack()
tk.Button(self, text='+1 ', command=self.increase1).pack()
tk.Button(self, text='+10 ', command=self.increase10).pack()
#Ausgabe counter
self.counter_label = tk.Label(self, text=self.counter.value)
self.counter_label.pack()
#Counter minus
tk.Button(self, text='-10 ', command=self.decrease10).pack()
tk.Button(self, text='-1 ', command=self.decrease1).pack()
tk.Button(self, text='-0,1', command=self.decrease).pack()
tk.Button(self, text='End ', command=self.master.destroy).pack()
def increase(self):
self.counter.increase()
self.counter_label['text'] = self.counter.value
def increase1(self):
self.counter.increase1()
self.counter_label['text'] = self.counter.value
def increase10(self):
self.counter.increase10()
self.counter_label['text'] = self.counter.value
def decrease(self):
self.counter.decrease()
self.counter_label['text'] = self.counter.value
def decrease1(self):
self.counter.decrease1()
self.counter_label['text'] = self.counter.value
def decrease10(self):
self.counter.decrease10()
self.counter_label['text'] = self.counter.value
def main():
root = tk.Tk()
ui = CounterUI(root, Counter())
ui.pack()
root.mainloop()
if __name__ == '__main__':
main()