python - 当我运行命令时,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。
我已经尝试了很多,但我没有得到解决方案,所以请帮我解决这个问题
解决方案
小错误,在 中r.config
,改变%d
to %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)))
希望能帮助到你 :)
推荐阅读
- c# - 条件过滤 IQueryable
通过表达式和第二个对象 - r - BNlearn,贝叶斯网络的 gRain 证据问题
- java - 如何从 JAVA 文件夹中获取所有视频的持续时间?
- python - 数据库对象上的 create_all 方法未创建数据库表
- javascript - JS Canvas - 基于百分比的多种颜色弧形边框
- swift - 如何等待动作结束以执行 SpriteKit 中的功能?
- postgresql - 通过 pg-promise 查询使用 $1 而不是模板文字有好处吗?
- javascript - 是否可以在 vanilla Javascript 中同时运行多个 if 语句?如果是这样,你怎么办?
- azure - Azure DevOps 多个组织或多个项目
- go - 根据带有有限数量子字符串的空格分割 golang