首页 > 解决方案 > 当我运行命令时,Python tkinter 不会打印小数点

问题描述

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()

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

我已经尝试了很多,但我没有得到解决方案,所以请帮我解决这个问题

标签: pythontkinter

解决方案


小错误,在 中r.config,改变%dto %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 = %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()

上面的代码将打印类似1.250000. 如果您想获得精确的 2 位小数点1.25,请使用:

r.config(text="Result =" + str(round(c, 2)))

希望能帮助到你 :)


推荐阅读