年度总和折旧类返回问题

时间:2014-04-24 17:01:17

标签: java class return

因此,我被赋予了创建表单的任务,用户可以输入项目的采购成本,打捞价值和使用寿命。我有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。

1 个答案:

答案 0 :(得分:0)

您需要根据(acquisitionCost - totalDepreciation)而不是仅仅使用acquisitionCost来计算您的弃用。这就是为什么每年的贬值都会降低。