Этот код (приведен в самом низу) был взят из моего основного, при этом я его зациклил чтобы он работал самостоятельно. Его одна из задач - увеличивать цену после каждого нажатия кнопки (в данном случае он самостоятельно делает), при этом чтобы цена вырастала плавно, она складывается с коэффициентом, который в свою очередь умножается на 1,5. Чтобы избавиться от цифр после запятой использую round(). Но столкнулся с такой проблемой, что он округляет число лишь в месте, где была использована функция округления. В других частях кода также остаются цифры после запятой. Вставлять везде round(), где есть переменная cnt - не вариант. При этом в этом моменте:
wtext.configure(text = "Кол-во монет: " + str(cnt))
он необходим как
str, поэтому с применением int есть проблемы. Если написать через запятую или через "+" в тексте, он выдаст ошибку. И самая главная проблема - если я отображаю число с помощь round(), то на выходе он мне может показать: Денег - 42. Цена - 42. Недостаточно денег. Все из за цифр после запятой.
Можно сделать так, чтобы он всегда округлялся, в том числе при подсчете.
Вот код:
import time
cnt = 0
pricePB_int = 10
factor = 1
while True:
if cnt >= pricePB_int: # cnt - кол-во монет, #pricePB_int - цена
cnt = cnt - pricePB_int
print("Успешная покупка!")
factor *= 1.5
print("Множитель цены: ", int(factor))
pricePB_int = pricePB_int + factor # после покупки, цена увеличивается на factor-значение
print("Новая цена: ", int(pricePB_int))
elif cnt < pricePB_int:
print("Недостаточно денег")
print(pricePB_int)
print("Деньги после покупки: ", round(cnt))
cnt += 5
print("Выдали деньги", round(cnt), "\n")
time.sleep(1)
P.S. также решил исправить проблему, написав текст отдельной строкой. Вместо
wtext.configure(text = "Кол-во монет: " + str(cnt))
Сделал вот так:
text_for_wtext = ("Кол-во монет:", cnt)
wtext.configure(text = text_for_wtext)
Появляется другая проблема, текст отображается внутри скобок {}, который разумеется я не ставил и они мне не нужны