当前位置: 首页 > 知识库问答 >
问题:

我有一个方法compute(int months),但它没有按我希望的那样迭代

鞠建安
2023-03-14

这是我的方法compute(),它接受月数:

 public double compute(int months){
        double balance = employee.getSalary();
        double newBalance=0;
        double monthlyInterest = (bankName.getInterestRate())/12;
        double annualRaise = employee.getAnnualRaise();

if (months <=12){
      for (int i = 1; i <= months; i++){
        newBalance = (newBalance+balance)*(1+monthlyInterest);
      }
      return newBalance;
    }

    else{

      int cycle = months/12;

      while (cycle >0){
        for (int i = 1; i <= 12; i++){
          newBalance = (newBalance+balance)*(1+monthlyInterest);
        }
        cycle--;

        months = months - 12; //remainder of months

        balance = balance*(1+annualRaise/100); //new starting salary

      }

      for (int k = 1; k <= months; k++){
        newBalance = (newBalance+balance)*(1+monthlyInterest);
      }
      return newBalance;
    }

  }

要提供上下文,

  1. 余额:是员工每月初获得的固定月薪

我的输入示例如下:

Bill Jobs 54000.0 0 0.012 13

如果比尔·乔布斯(BillJobs)是余额为54K的员工,每年从银行获得0%和1.2%的年利率,计算时间将超过13个月。我的期望输出应该是:

Bill Jobs: salary is 54K, annual raise is 0% has balance of 706933.71 

其中706933.71的余额是在调用compute方法时计算出来的,但是我最终得到

Bill Jobs: salary is 54K, annual raise is 0% has balance of 705852.63

13个月后的余额为705852.63。

共有1个答案

卢志强
2023-03-14

工资基本计算见下文,每月加息1.5%。您可以根据需要对此进行修改。

import java.util.Scanner;

public class Salary {

public static void main(String[] args) {

    double salary = 24000;
    double interest = 1.5;
    double total = 0;
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the month = ");
    int month = sc.nextInt();
    if(month != 0 && month  < 13){
        for(int i=1; i <= month; i++){
            salary += total;
            total = (salary + (salary * (interest/100)))  ;
        }
        System.out.println("salary with interest "+total);
    }else{
        System.out.println("Enter the month from 1-12");
    }


   }

}
 类似资料:
  • 我写了一个Spring批处理作业,从数据库中读取,然后写入csv。 这项工作的工作,但不幸的是,在我的输出CSV文件,它只是把什么是在我的域对象的toString方法。 我真正想要的是bean中用逗号分隔的所有值。这就是为什么我在下面的ItemWriter中加入了分隔线聚合器。 但我认为我对DelimitedLineAggregator的理解是错误的。我以为LineAggregator用于输出,但

  • 我正在学习这个教程。net电影教程,我的模型中有两个简单的文件。 另一个是Visual Studio给我的帐户模型: 问题是......如果我再加上一句话 对于UserProfile类,我在迁移中没有得到任何更改。。。。这是因为迁移只更新MovieDBContext中的类。。。。因此,我必须补充如下内容: 问题是,在另一个项目中,我试图更新会计模型,并尝试了这个解决方案,但它没有工作......有

  • 这是我的设备 这是我的消息正文作者 我的问题是: 为什么结果似乎不正确?我被放在@JsonRootName(“Facility”)上,并且还启用了包装根特性 我错过了什么

  • 我有一个按钮,我给了角半径属性。在xml代码中,应用程序似乎是弯曲的,但当我运行应用程序时,按钮是矩形的。 我也用材质按钮代替了这个按钮,但还是发生了同样的事情。它在XML设计中似乎是弯曲的,但在应用程序中却不是。

  • 我有一个HTML表日历,日期设置为按钮。当用户点击该按钮时,该按钮将把他们重定向到约会页面。但是,我需要它将按钮的值(设置为相应的日期)传递到约会页面,以便用户可以在该日期预订会议。 当我点击按钮时,我想将值“1”传递 /appointments页面,但我不知道如何做到这一点。有可能做到这一点吗?我在烧瓶蟒蛇上这样做。 约会。html 预约路线:

  • 问题内容: 我使用MVC4 Web API,C#,并想 **使用Json.net 返回Json 。** 问题是它带有“反斜杠”。 我还将此代码添加到Global.asax。 这是它返回的内容。 所以我想看的是 这是JsonConvertor 问题答案: 我在这里找到解决方案