我有一个公式,我需要根据在执行公式时选择的单选按钮中的哪个来更改特定的数字。
目前按钮如下:-
radioframe = Frame(window)
glthick = DoubleVar()
radio_1 = Radiobutton(radioframe,text='12mm',
variable = glthick,value=86.67)
radio_2 = Radiobutton(radioframe,text='15mm',
variable = glthick,value=191.19)
radio_1.select()
我的理解是,无论选择哪个按钮,都会将响应值应用于变量"glthick"?
然后我尝试将这个数字转换成一个浮点数用于下面的方程式,请不要试图阅读方程式,数学是合理的。
def formulaexecute():
val1 = (entry1.get())
val2 = (entry2.get())
glthickval = float(glthick)
try:
floatval1 = float(val1)
floatval2 = float(val2)
except ValueError:
message = "The numbers you have entered are not valid numbers"
print("Error!", message)
box.showerror("Invalid Input", message)
floatval1 = float(val1)
floatval2 = float(val2)
bevel = (((floatval1/100)*2)+((floatval2/100)*2))*3.5
formula12 = (((((((floatval1/100)*(floatval2)/100))*glthickval)+bevel+44)*2.4)*1.1)
glprice12 = formula12 + bevel
showprice12 = str(glprice12)[:4]
box.showinfo('Final Calculation',('Your table is:+entry1.get()+'x'+en
在formula12 =之后,您可以看到在glthickval中尝试使用单选按钮的浮动值,这是单选按钮值的浮动转换版本。
返回的错误是"float()参数必须是字符串或数字",我知道很多人得到这些,因为错误地具有不能浮动输入的值,但我知道在这种情况下,我不知道。所以我很茫然。
该错误特别报告glthickval = float(glthick)作为引起问题的行,但它在其他所有版本中都工作得很好。
也许这太简单了,但是非常感谢你的帮助。
解决方案:
glthickval = (glthick.get())
glthickvalfloat = float(glthickval)
致以亲切的问候,Lewis
glthick
是一个对象而不是一个数字,因此必须使用.get()
来获取值:
glthickval = glthick.get()
我发现了问题,问题是单选按钮根据其选择为变量分配一个数字,但随后需要调用函数将该数字拉出来,然后将其属性为浮动数字,以便在下面的公式中使用。花了我一点时间,但我明白了,希望其他试图弄清楚这个的人会读到这篇文章。我编辑了原始帖子,以显示更正后的代码块。