当我运行命令时,Python tkinter不会打印decimal

当我运行命令时,Python tkinter不会打印decimal,python,tkinter,Python,Tkinter,当我在所有地方传递值5时,答案必须是1.25,但它显示为1 我已经尝试了很多,但没有找到解决方案,因此请帮助我解决这个问题小错误,在r.config中,将%d更改为%f,它将给出一个浮点值: from tkinter import * from functools import partial wn=Tk() wn.geometry("400x200") wn.configure(bg='green') def add(r,a,b,y): a=(a.get())# input("fi

当我在所有地方传递值5时,答案必须是1.25,但它显示为1


我已经尝试了很多,但没有找到解决方案,因此请帮助我解决这个问题

小错误,在
r.config
中,将
%d
更改为
%f
,它将给出一个浮点值:

from tkinter import *
from functools import partial
wn=Tk()
wn.geometry("400x200")
wn.configure(bg='green')


def add(r,a,b,y):
    a=(a.get())# input("first number:=")
    b=(b.get())#input("\nsecond number:=")
    y=(y.get())
    c=float(a)*float(b)*float(y)/100
    r.config(text="Result = %d" % c)
    return
#print("the sum of numbers=",format(c))


l=Label(wn,text="Simple Interest",border=0).grid(row=1,column=2)
l2=Label(wn,text="Enter principal amount",border=0).grid(row=2,column=1)
l3=Label(wn,text="rate of Interest",border=0).grid(row=3,column=1)
l4=Label(wn,text="Enter no. of year",border=0).grid(row=4,column=1)
r =Label(wn)
r.grid(row=7, column=2)

number1 =StringVar()
number2 =StringVar()
number3 =StringVar()

Num1 = Entry(wn, textvariable=number1).grid(row=2, column=2)
Num2 = Entry(wn, textvariable=number2).grid(row=3, column=2)
Num2 = Entry(wn, textvariable=number3).grid(row=4, column=2)

add = partial(add,r, number1, number2,number3)
but_r= Button(wn, text="Calculate", command=add).grid(row=5, column=1)
wn.mainloop()
上面的代码将打印类似于
1.250000
的内容。如果要获得精确的2个小数点,如
1.25
,请使用:

from tkinter import *
from functools import partial
wn=Tk()
wn.geometry("400x200")
wn.configure(bg='green')


def add(r,a,b,y):
    a=(a.get())# input("first number:=")
    b=(b.get())#input("\nsecond number:=")
    y=(y.get())
    c=float(a)*float(b)*float(y)/100
    r.config(text="Result = %f" % c)
    return
#print("the sum of numbers=",format(c))


l=Label(wn,text="Simple Interest",border=0).grid(row=1,column=2)
l2=Label(wn,text="Enter principal amount",border=0).grid(row=2,column=1)
l3=Label(wn,text="rate of Interest",border=0).grid(row=3,column=1)
l4=Label(wn,text="Enter no. of year",border=0).grid(row=4,column=1)
r =Label(wn)
r.grid(row=7, column=2)

number1 =StringVar()
number2 =StringVar()
number3 =StringVar()

Num1 = Entry(wn, textvariable=number1).grid(row=2, column=2)
Num2 = Entry(wn, textvariable=number2).grid(row=3, column=2)
Num2 = Entry(wn, textvariable=number3).grid(row=4, column=2)

add = partial(add,r, number1, number2,number3)
but_r= Button(wn, text="Calculate", command=add).grid(row=5, column=1)
wn.mainloop()

希望有帮助:)

也可以更改您的添加功能-

r.config(text="Result =" + str(round(c, 2)))
%f
用于浮点数和
%.3f
将其限制为3位小数,这比默认值稍微干净一点

def add(r,a,b,y):
    a=(a.get())# input("first number:=")
    b=(b.get())#input("\nsecond number:=")
    y=(y.get())
    c=float(a)*float(b)*float(y)/100
    r.config(text="Result = %.3f" %c)
    return