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

使用简单利率公式计算Java投资期限

马边浩
2023-03-14

所以我要做的任务是找出一个委托人达到某个值所需的年数。比如说,我从5000美元开始,我想以10%的年利率积累15000美元。我想知道这项投资的持续时间有多长

这就是我到目前为止所做的

package com.company;

import java.util.Scanner;


public class InvestmentDuration {

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.println ("Initial Investment: ");
    double investment = input.nextDouble();

    System.out.println ("Rate as decimals: ");
    double rate = input.nextDouble();

    System.out.println ("Future Value: ");
    double FutureValue = input.nextDouble();

    double T = 0; //Initialise Duration//

    double EndValue = investment * Math.pow ((1+rate), T); //Formula of Simple Interest//

     while (EndValue < FutureValue) {
        T += 1.0;

         if (investment * Math.pow((1 + rate), T) == FutureValue);

        System.out.println("The Number of years it takes to accumulate $" + FutureValue + " is " + T + " years");
    }


}

输出:

The Number of years it takes to accumulate $15000.0 is 1.0 years
The Number of years it takes to accumulate $15000.0 is 2.0 years
The Number of years it takes to accumulate $15000.0 is 3.0 years
The Number of years it takes to accumulate $15000.0 is 4.0 years
The Number of years it takes to accumulate $15000.0 is 5.0 years
The Number of years it takes to accumulate $15000.0 is 6.0 years
The Number of years it takes to accumulate $15000.0 is 7.0 years
The Number of years it takes to accumulate $15000.0 is 8.0 years
The Number of years it takes to accumulate $15000.0 is 9.0 years
The Number of years it takes to accumulate $15000.0 is 10.0 years
The Number of years it takes to accumulate $15000.0 is 11.0 years
The Number of years it takes to accumulate $15000.0 is 12.0 years

如何只打印最后一行?

共有3个答案

田曜瑞
2023-03-14

这里有很多错误。。。首先,你的IF语句:它没有动作,因为你用分号把它关闭了。此外,endvalue不太可能等于futurevalu,部分原因是浮点精度,部分原因是不太可能是整数年。所以我想试试这样:

double T = 0.0;
while(investment * Math.pow ((1+rate), T) < FutureValue) {
   T += 1.0;
}
System.out.println ("The Number of years it takes to accumulate the Future Value is: " +T+);

当然,你也可以重新调整公式,直接计算T。

吕琪
2023-03-14

您需要使用循环forwhile)。在这个循环中,您可以增加年份的值并计算新值。

请注意,我对变量做了一些更改:

  • 因为您想要一个整数循环,T的类型是int
  • 我分别将EndValueFinalValue更改为EndValueFinalValue。Java命名约定为大小写,变量名的首字母很小
  • 我认为yearsT更好,但这是我个人的看法。如果你决定留在T,至少应该是一个小字母T

然后可以使用以下代码。在变量中保存endValue并不是真正必要的,因为它只使用一次。所以它可以内联。但我决定继续回答你的问题。

    int years = 0;

    double endValue = investment;

    while (endValue < futureValue) {
        years++;
        endValue = investment * Math.pow((1 + rate), years);
    }

您应该知道,在这个循环之后,years是endValue大于或等于futureValue的完整年份数。这意味着你不可能有像3.5年这样的结果。如果你想计算,你应该使用亨利的解。

訾高飞
2023-03-14

最简单的解决方案是一点数学知识:

Math.log(goal/start) / Math.log(1+rate/100.0)

其中,goalstart分别是期末和期初的金额,rate是以百分比表示的利率。

 类似资料:
  • 我正在制作一个方法,该方法应该计算一定时期内某个金额的利率(这些值已经在参数中定义)。这是我到目前为止拥有的代码: 我正在制作嵌套的for循环,正如您在那里看到的那样,那里缺少代码。这里我遇到了一些麻烦。第一个for循环贯穿年份,另一个应该计算总量。为了清楚变量“int年份”中定义的年份,假设它是7,那么程序应该计算每年数量的增长,因此: 主要方法如下所示: 我很感激我能得到的任何帮助!

  • 我是Java新手,我应该计算10年后1000欧元的利率发展,并增加百分比(3%, 4%, 5%, 6%, 7%)。我在弄清楚如何在两个数组之间进行计算时遇到了很多麻烦。真正的困难是将1000欧元放在二维数组的第一[0]行(0年),并每年将利率添加到数组的下一行。这是我到现在还能做的,但现在我完全卡住了: 我应该得到什么: 我得到的是: 我真的很感激每一个关于我做错了什么的建议。

  • 本文向大家介绍java实现简单日期计算功能,包括了java实现简单日期计算功能的使用技巧和注意事项,需要的朋友参考一下 本文讲的java日期计算比较偏,用到的地方很少(比如获取今天所在周的周一或者周日,获取今天是本月的第几周...),这些方法是以前做项目遗留下来的,现在整理一下,跟大家分享。 工具类主要有一下方法: public static Date getFirstMondayOfMonth(

  • 问题内容: 首先,这不是一个作业问题。我正在练习有关Java的知识。我想一个很好的方法是编写一个没有帮助的简单程序。不幸的是,我的编译器告诉我我不知道如何解决的错误。在不更改大量逻辑和代码的情况下,有人可以指出我的一些错误在哪里吗?谢谢 问题答案: 这会工作

  • 我正在做一个程序,可以计算存款单上的基本利息。该计划要求投资金额和期限(最多五年)。取决于他们的任期是多少年,是什么决定了多少利息收入。我使用if/else语句来确定利率。然后,我使用循环打印出每年年底账户中有多少钱。我的问题是,当我运行这个程序时,钱不算在内。 这是整个代码。 这是我用10美元的投资得到的结果,只是为了简单起见,还有5年的投资。 我的主要问题是,我不知道如何让它不断地把乐趣加到总

  • 问题内容: 关于如何使用/ proc / stat中的统计信息获取CPU利用率的文章和参考文献很多。但是,它们中的大多数仅使用7个以上的CPU统计信息中的四个(用户,nice,系统和空闲),而忽略了Linux2.6中存在的剩余jiffie CPU计数(iowait,irq,softirq)。 我的问题是:iowait / irq / softirq编号是否也计入前四个编号之一(用户/ nice /