我正在尝试对债务进行滚雪球计算-对于那些不知道的人-您每月对所有贷款进行最低还款额。一旦还清了一笔,您就可以将最低付款额添加到下一笔 - 依此类推。我的每笔债务都在循环中,但我的屏幕变黑了,我相信它处于无限循环中。我总共有 10 个,但这里有一些只是为了展示它是如何工作的:
int tempTimeTaken=0;
double newPmt = payment1 + aAmt;
while(amount1>0){
amount1 = (amount1 * rate1) - newPmt;
tempTimeTaken++;
}
newPmt = newPmt + payment2;
for (int i=0;i<tempTimeTaken;i++)
{
if(amount2>0){
amount2 = (amount2 * rate2) - payment2;
}
}
do{
if (amount2>0){
amount2 = (amount2 * rate2) - newPmt;
tempTimeTaken++;}
}while(amount2>0);
此处未初始化的每个变量都是从活动早期的共享首选项中检索的。一旦收到,它就会被解析成一个双精度数(假设它不为空)。
try
{
amount2 = Double.parseDouble(debtAmount2);
}
catch ( Exception e )
{
amount2 = 0;
}
我也尝试过循环
while (amount>0){
//do stuff
}
这也不起作用——同样的效果。
关于如何让这个不要永远循环的任何建议?
所有数据类型都是双精度的(tempTimeTaken 是 int 除外) - 初始值不同 - 它们在不同的活动中输入并通过 sharedpref 传送到该活动,默认值为 0