в то время как цикл не выполняется, проверяется ли слишком большое целочисленное значение? - PullRequest
0 голосов
/ 27 августа 2018

Резюме: while (1000000000 <= 0) #1 billion проходит тестирование.Это слишком высокое значение для тестирования целого числа в Python или мой код (ниже) не выполняет цикл while по некоторым другим причинам?

Я пытаюсь определить, сколько времени потребуется, чтобы потратитьмиллиард долларов, тратя $ 100 в секунду, в то время как деньги также приносят 1% годовых в год:

currentAmount = 1000000000 # 1 billion

MONEY_SPENT_PER_SECOND = 100

days = 1 #up to 365

INTEREST_RATE_PER_DAY = .01 / 365

SECONDS_IN_DAY = 86400

MONEY_SPENT_PER_DAY = SECONDS_IN_DAY * 100 # $8,640,000

interestEarnedToday = 0

while(currentAmount <= 0):
    print("In loop") #test to see if code is in loop, but this does not get printed
    interestEarnedToday = INTEREST_RATE_PER_DAY * currentAmount
    currentAmount = currentAmount + interestEarnedToday
    currentAmount = currentAmount - MONEY_SPENT_PER_DAY
    days = days + 1

Но цикл while никогда не включается, и я не уверен, почему?Когда print(currentAmount) выводит 1000000000, я чувствую, что это означает, что python может обрабатывать целые числа такие большие.Спасибо за любую помощь.

1 Ответ

0 голосов
/ 27 августа 2018

Ваше условие цикла кажется инвертированным, поэтому оно ложно во время первой проверки, и именно поэтому тело цикла никогда не запускается.

Вы должны поставить currentAmount >= 0 в ваше состояние цикла.

Говоря о целочисленных размерах в Python, они могут быть произвольно большими, поэтому вам не следует беспокоиться о том, что они выходят за пределы определенного диапазона (например, 32-разрядных или 64-разрядных в других языках).

...