因此,我被赋予了创建表单的任务,用户可以输入项目的采购成本,打捞价值和使用寿命。我有3种单独的折旧方法,直线,年数和和下降。直线我已经正常工作,但最后两行在退货报表上给了我相同的问题,每年应该有相同的折旧(我得到了一个结果的例子)。下面是年度总和的类的部分以及整个类的公共变量。接下来是提供return语句的私有double。
变量:
public class DepreciationScheduleClass {
NumberFormat money = NumberFormat.getCurrencyInstance();
// the schedule is just an array of formatted strings
public String[] schedule;
int period;
方法:
public void MakeSumOfYearsDigitSchedule(double acquisitionCost,
double salvageValue, int usefulLife)
{
double totalDepreciation = 0.0;
double undepreciatedAmount = acquisitionCost;
double depreciation = SYD(acquisitionCost,salvageValue,usefulLife,period);
String scheduleLine;
schedule = new String[usefulLife + 2];
// add period 0 to schedule
scheduleLine = "0\t " + money.format(depreciation) + " \t "
+ money.format(undepreciatedAmount);
schedule[0] = scheduleLine;
//add period lines to schedule
for (int i = 1; i <= usefulLife; i++)
{
totalDepreciation = totalDepreciation + depreciation;
undepreciatedAmount = acquisitionCost - totalDepreciation;
scheduleLine = i + "\t " + money.format(depreciation) + " \t "
+ money.format(undepreciatedAmount);
schedule[i] = (scheduleLine);
}
//add total depreciation line to schedule
schedule[usefulLife + 1] = "Total depreciated \t" +
money.format(totalDepreciation);
}
返回的私人双人:
private double SYD(double acquisitionCost,
double salvageValue, int usefulLife, int period)
{
double SOYlife=(usefulLife*(usefulLife+1))/2;
return ((usefulLife-period)/SOYlife)*(acquisitionCost-salvageValue);
}
老实说,我认为我只是错过了一些非常简单的东西,但我一次又一次地忽略它,我需要另外一双眼睛和大脑去看看。先谢谢!
修改
很抱歉这个混乱。还是新的。
这就是我得到的。 !http://i.imgur.com/HZQfLjr.jpg
这就是我应该得到的。 !http://i.imgur.com/E51RSng.jpg
我认为导致我问题的是提供return语句的私有double。
答案 0 :(得分:0)
您需要根据(acquisitionCost - totalDepreciation)而不是仅仅使用acquisitionCost来计算您的弃用。这就是为什么每年的贬值都会降低。