У меня есть пара коробок. Один из них касается рабочего времени. Другой — за трудовые доллары. Когда вы вводите сумму трудо-часов, она автоматически рассчитывает и заполняет поле в долларах США. Когда вы вводите сумму в долларах США, она автоматически рассчитывает и заполняет поле «Часы работы». Все работает как хотелось. Я использую переменную.get() в функции для извлечения данных из полей ввода по мере ввода чисел, а затем обновляю математические данные для каждого нажатия клавиши.
Проблема Я сталкиваюсь с тем, что, когда стоимость рабочей силы равна длинному десятичному знаку, расчеты немного искажаются. В конечном итоге происходит то, что при ставке труда 70,00 в час, если я ввожу сумму в долларах труда, например, 127,00, она автоматически заполняет/отображает 1,81 часа труда, а это именно то, что я хочу. Но 1,81 часа труда при 70,00 в час получается 126,70, потому что 127,00, разделенное на 70,00 в час, составляет 1,814285714285714 часов труда, а не 1,81.
В результате получается привязка, которая выполняется просто если отпустить кнопку вкладки, вложенная рабочая сила изменится со 127,00 на 126,70. Чтобы числа оставались прежними, мне нужно, чтобы он мог рассчитывать в соответствии с полным десятичным числом 1,814285714285714 * 70,00, но для эстетических целей я хочу, чтобы он отображал только первые два десятичных числа. мест.
Я не знаю, с чего начать, чтобы иметь возможность вычислять полное число, отображая усеченное версию.
При необходимости я могу предложить код, который использую, но думаю, что вопрос довольно простой. Если кто-нибудь может предложить конструктивное руководство, мы будем признательны.
Изменить: добавлен код
IE = {}
for i in range(117):
IE = None
def lh_1(event):
lha = lhbox1.get()
if lha.replace('.','',1).isnumeric() == True:
IE[7] = float(lhbox1.get())
IE[8] = float(IE[7])*float(ratesbox1.get())
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "${:.2f}".format(float(IE[8])))
print(IE[7])
print(IE[8])
elif lhbox1.get() == ".":
IE[7] = lhbox1.get()
lbox1.delete(0, tkinter.END)
elif lhbox1.get() == "":
lhbox1.delete(0, tkinter.END)
IE[7] = None
lbox1.delete(0, tkinter.END)
else:
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, IE[7])
def lh_1_enter(event):
if IE[7] != None:
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, "{:.2f}".format(float(IE[7])))
def lh_1_leave(event):
if IE[7] != None:
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, "{:.2f}".format(float(IE[7])))
lhfrm1 = tkinter.Frame(master=wofrm, bg="#b2b4b7", width=48, height=25, borderwidth=2, relief=tkinter.SUNKEN)
lhfrm1.place(x=902, y=110)
lhbox1 = tkinter.Entry(master=wofrm, bg="#b2b4b7", fg="#000000", width=6, borderwidth=0, relief=tkinter.FLAT)
lhbox1.place(x=908, y=114)
WOBOXES.append(lhbox1)
lhbox1.bind("", lh_1)
lhbox1.bind("", lh_1_enter)
lhbox1.bind("", lh_1_leave)
def l_1(event):
la = lbox1.get()
if la.replace('.','',1).isnumeric() == True:
IE[8] = float(lbox1.get())
IE[7] = float(IE[8])/float(ratesbox1.get())
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, "{:.2f}".format(IE[7]))
print(IE[8])
print(IE[7])
elif lbox1.get() == ".":
IE[8] = lbox1.get()
lhbox1.delete(0, tkinter.END)
elif lbox1.get() == "":
lbox1.delete(0, tkinter.END)
IE[8] = None
lhbox1.delete(0, tkinter.END)
else:
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "{:.2f}".format(float(IE[8])))
def l_1_enter(event):
if IE[8] != None:
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "{:.2f}".format(float(IE[8])))
def l_1_leave(event):
if IE[8] != None:
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "${:.2f}".format(float(IE[8])))
lfrm1 = tkinter.Frame(master=wofrm, bg="#b2b4b7", width=70, height=25, borderwidth=2, relief=tkinter.SUNKEN)
lfrm1.place(x=952, y=110)
lbox1 = tkinter.Entry(master=wofrm, bg="#b2b4b7", fg="#000000", width=10, borderwidth=0, relief=tkinter.FLAT)
lbox1.place(x=958, y=114)
WOBOXES.append(lbox1)
lbox1.bind("", l_1)
lbox1.bind("", l_1_enter)
lbox1.bind("", l_1_leave)
Подробнее здесь: https://stackoverflow.com/questions/792 ... displaying
Можете ли вы в Python воспользоваться всеми преимуществами длинного десятичного знака, отображая при этом только два зна ⇐ Python
Программы на Python
1732094366
Anonymous
У меня есть пара коробок. Один из них касается рабочего времени. Другой — за трудовые доллары. Когда вы вводите сумму трудо-часов, она автоматически рассчитывает и заполняет поле в долларах США. Когда вы вводите сумму в долларах США, она автоматически рассчитывает и заполняет поле «Часы работы». Все работает как хотелось. Я использую переменную.get() в функции для извлечения данных из полей ввода по мере ввода чисел, а затем обновляю математические данные для каждого нажатия клавиши.
Проблема Я сталкиваюсь с тем, что, когда стоимость рабочей силы равна длинному десятичному знаку, расчеты немного искажаются. В конечном итоге происходит то, что при ставке труда 70,00 в час, если я ввожу сумму в долларах труда, например, 127,00, она автоматически заполняет/отображает 1,81 часа труда, а это именно то, что я хочу. Но 1,81 часа труда при 70,00 в час получается 126,70, потому что 127,00, разделенное на 70,00 в час, составляет 1,814285714285714 часов труда, а не 1,81.
В результате получается привязка, которая выполняется просто если отпустить кнопку вкладки, вложенная рабочая сила изменится со 127,00 на 126,70. Чтобы числа оставались прежними, мне нужно, чтобы он мог рассчитывать в соответствии с полным десятичным числом 1,814285714285714 * 70,00, но для эстетических целей я хочу, чтобы он отображал только первые два десятичных числа. мест.
Я не знаю, с чего начать, чтобы иметь возможность вычислять полное число, отображая усеченное версию.
При необходимости я могу предложить код, который использую, но думаю, что вопрос довольно простой. Если кто-нибудь может предложить конструктивное руководство, мы будем признательны.
Изменить: добавлен код
IE = {}
for i in range(117):
IE[i] = None
def lh_1(event):
lha = lhbox1.get()
if lha.replace('.','',1).isnumeric() == True:
IE[7] = float(lhbox1.get())
IE[8] = float(IE[7])*float(ratesbox1.get())
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "${:.2f}".format(float(IE[8])))
print(IE[7])
print(IE[8])
elif lhbox1.get() == ".":
IE[7] = lhbox1.get()
lbox1.delete(0, tkinter.END)
elif lhbox1.get() == "":
lhbox1.delete(0, tkinter.END)
IE[7] = None
lbox1.delete(0, tkinter.END)
else:
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, IE[7])
def lh_1_enter(event):
if IE[7] != None:
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, "{:.2f}".format(float(IE[7])))
def lh_1_leave(event):
if IE[7] != None:
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, "{:.2f}".format(float(IE[7])))
lhfrm1 = tkinter.Frame(master=wofrm, bg="#b2b4b7", width=48, height=25, borderwidth=2, relief=tkinter.SUNKEN)
lhfrm1.place(x=902, y=110)
lhbox1 = tkinter.Entry(master=wofrm, bg="#b2b4b7", fg="#000000", width=6, borderwidth=0, relief=tkinter.FLAT)
lhbox1.place(x=908, y=114)
WOBOXES.append(lhbox1)
lhbox1.bind("", lh_1)
lhbox1.bind("", lh_1_enter)
lhbox1.bind("", lh_1_leave)
def l_1(event):
la = lbox1.get()
if la.replace('.','',1).isnumeric() == True:
IE[8] = float(lbox1.get())
IE[7] = float(IE[8])/float(ratesbox1.get())
lhbox1.delete(0, tkinter.END)
lhbox1.insert(0, "{:.2f}".format(IE[7]))
print(IE[8])
print(IE[7])
elif lbox1.get() == ".":
IE[8] = lbox1.get()
lhbox1.delete(0, tkinter.END)
elif lbox1.get() == "":
lbox1.delete(0, tkinter.END)
IE[8] = None
lhbox1.delete(0, tkinter.END)
else:
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "{:.2f}".format(float(IE[8])))
def l_1_enter(event):
if IE[8] != None:
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "{:.2f}".format(float(IE[8])))
def l_1_leave(event):
if IE[8] != None:
lbox1.delete(0, tkinter.END)
lbox1.insert(0, "${:.2f}".format(float(IE[8])))
lfrm1 = tkinter.Frame(master=wofrm, bg="#b2b4b7", width=70, height=25, borderwidth=2, relief=tkinter.SUNKEN)
lfrm1.place(x=952, y=110)
lbox1 = tkinter.Entry(master=wofrm, bg="#b2b4b7", fg="#000000", width=10, borderwidth=0, relief=tkinter.FLAT)
lbox1.place(x=958, y=114)
WOBOXES.append(lbox1)
lbox1.bind("", l_1)
lbox1.bind("", l_1_enter)
lbox1.bind("", l_1_leave)
Подробнее здесь: [url]https://stackoverflow.com/questions/79205763/in-python-can-you-get-the-full-utility-of-a-long-decimal-while-only-displaying[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия