摘要:while (1000000000 <= 0) #1 billion
正在测试中。
这个值是否太高而无法在Python中测试整数?还是我的代码(下面)由于其他原因而不执行while循环?
我试图通过花费100美元/秒来确定花费10亿美元所需的时间,而这笔钱每年还赚取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可以处理这么大的整数。感谢您的帮助。
答案 0 :(得分:3)
您的循环条件似乎已反转,因此在第一次检查时为假,这就是循环体从不运行的原因。
您应将currentAmount >= 0
放入循环条件。
说到Python中的整数大小,它们可以任意大,所以您不必担心它们超出某个范围(例如其他语言中的32位或64位)。