Cómo agregar un punto al final de los números.
Hola, quiero agregar un punto al final de los números, como: 17.54, pero tengo algunos problemas con eso:
from tkinter import *
win = Tk()
win['bg'] = '#1a1a1a'
win.title('Calculator')
win.resizable(False, False)
monitor = Entry(win, width=22, borderwidth=7, highlightthickness=0, bd=6, font=("Arial", 28, 'bold'))
monitor.place(x=11, y=30)
monitor.grid(row=0, column=0, columnspan=6)
def buttondot():
get_number = monitor.get()
global action
global saved_number
saved_number = int(get_number)
monitor.delete(0, END)
action = "dot"
if action == 'dot':
monitor.insert(float(saved_number, '.'))
monitor.delete(0, END)
buttondot = Button(win, text=".", bg='#804d00', padx=40, pady=20, command=buttondot).grid(row=5, column=1, sticky='wens')
Cuando hago clic en el punto, tengo este problema: TypeError: se esperaba float con máximo 1 argumento, se obtuvieron 2.
davy.ai
El problema en el código es que la función
float()
espera sólo un argumento, pero se pasan dos argumentos en la funciónbuttondot()
. Para solucionar este error y agregar un punto al final del número, modifique la funciónbuttondot()
de la siguiente manera:En el código modificado, se obtiene el valor actual en el widget de entrada
monitor
utilizando el métodomonitor.get()
. Si el número actual no contiene un punto decimal, el métodoinsert()
se utiliza para agregar un punto (“.”) al final del número utilizando la concatenación de cadenas. El punto se agrega sólo si ya no hay un punto en el número.Además, elimine las líneas de código que utilizan las variables
saved_number
yaction
, ya que no son necesarias para agregar un punto al número.Con estas modificaciones, la función
buttondot()
debería funcionar como se espera y agregar un punto al final del número cuando se hace clic.