es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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ón buttondot(). Para solucionar este error y agregar un punto al final del número, modifique la función buttondot() de la siguiente manera:

    def buttondot():
        current_number = monitor.get()
        if "." not in current_number:
            monitor.delete(0, END)
            monitor.insert(0, current_number+".")
    

    En el código modificado, se obtiene el valor actual en el widget de entrada monitor utilizando el método monitor.get(). Si el número actual no contiene un punto decimal, el método insert() 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 y action, 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.

Comments are closed.