Я разрабатываю приложение для расчета налога за выставление счетов, и в то же время, если значение базы расчета ((receita1 * 32/100) + (receita2 * 8/100)) превышает 60 КБ, оно вычисляет излишек этого, (((receita1 * 32/100) + (receita2 * 8/100)) - 60000), однако выдает следующую ошибку:
v_result3.set(real(receita1 * 32 / 100) + (receita2 * 8 / 100))
TypeError: can only concatenate str (not "float") to str
Вот полный код:
from tkinter import *
root = Tk()
root.geometry('350x350')
def real(my_value):
a = '{:,.2f}'.format(float(my_value))
b = a.replace(',', 'v')
c = b.replace('.', ',')
return c.replace('v', '.')
l_label = Label(root, text='Receita 1')
l_label.place(x=10, y=10)
e_entry = Entry(root)
e_entry.place(x=100, y=10)
l_label2 = Label(root, text='Receita 2')
l_label2.place(x=10, y=40)
e_entry2 = Entry(root)
e_entry2.place(x=100, y=40)
v_result = DoubleVar()
l_result = Label(root, textvariable=v_result)
l_result.place(x=10, y=70)
l_explic = Label(root, text='<-- receita1 x 32%')
l_explic.place(x=100, y=70)
v_result2 = DoubleVar()
l_result2 = Label(root, textvariable=v_result2)
l_result2.place(x=10, y=100)
l_explic2 = Label(root, text='<-- receita2 x 8%')
l_explic2.place(x=100, y=100)
v_result3 = DoubleVar()
l_result3 = Label(root, textvariable=v_result3)
l_result3.place(x=10, y=130)
l_explic3 = Label(root, text='<-- receita1 x 32% + receita2 x 8%')
l_explic3.place(x=100, y=130)
v_result4 = DoubleVar()
l_result4 = Label(root, textvariable=v_result4)
l_result4.place(x=10, y=160)
l_explic4 = Label(root, text='<-- result if')
l_explic4.place(x=100, y=160)
def calc():
receita1 = int(e_entry.get())
receita2 = int(e_entry2.get())
v_result.set(real(receita1 * 32 / 100))
v_result2.set(real(receita2 * 8 / 100))
v_result3.set(real(receita1 * 32 / 100) + (receita2 * 8 / 100))
if v_result3.get() > 60000:
v_result4.set(real((receita1 * 32 / 100) + (receita2 * 8 / 100)) - 60000)
elif v_result3.get() < 60000:
v_result4.set(real(receita1 * 32 / 100) + (receita2 * 8 / 100))
e_entry.delete(0, END)
e_entry2.delete(0, END)
bt = Button(root, text='calc', command=calc)
bt.place(x=10, y=200)
root.mainloop()