在下一个循环中使用输出作为输入

时间:2014-07-11 07:26:47

标签: java

我需要有这样的结果:
例如,用户输入为principal = 2000,term = 6,rate = 2%

Period Interest  Total Interest  Total Balanced<br>
    1      6.66            6.66             2006.60 
    2      6.69            13.35           2013.35 
    3      6.71            20.06           2020.06 
    4      6.74            26.80           2026.80 
    5       6.75           33.55           2033.55 
    6       6.78           40.33           2040.33

我的代码是:

import java.io.*;
public class interest
{
    public static void main(String[] args)throws Exception
    {
        BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(System.in));

        float p, t, r, total;
        int a = 1;

        System.out.println("Enter the amount deposited: ");

        p = Integer.parseInt(bufferedreader.readLine());

        System.out.println("Enter the number of term: ");

        t = Integer.parseInt(bufferedreader.readLine());

        System.out.println("Enter the interest rate(%): ");

        r = Integer.parseInt(bufferedreader.readLine());

        System.out.println("Period \t Interest  Total Interest  Total Balance");

        while ( a &lt;= t)
        {
            System.out.print("   " + a + "\t   ");
            a++;

            {
                float R = (float) (r/100)/t;
                float interest = (float) p * R;
                float totalInt = (float) interest ;
                total = p + totalInt;

                System.out.println(interest + "\t\t" + totalInt + "\t      " + total);
            }
        }
    }
}

但结果如下:

Period   Interest  Total Interest  Total Balance
   1       6.6666665        6.6666665         2006.6666
   2       6.6666665        6.6666665         2006.6666
   3       6.6666665        6.6666665         2006.6666
   4       6.6666665        6.6666665         2006.6666
   5       6.6666665        6.6666665         2006.6666
   6       6.6666665        6.6666665         2006.6666

4 个答案:

答案 0 :(得分:1)

totalInt声明移到while声明之外。 您目前正在每个循环中重置它,因此它实际上不是您的总利益,而是您当前的兴趣。 您需要在循环中执行:totalInt += interest;。 并且您不需要再次将兴趣转换为浮点数,因为它已经被声明为浮点数。 另外,total += interest可能更干净,而不是从您的基础存款开始,并且每次都使用您的totalInt递增它。

关于你的上一期,格式化,只需按照以下方式执行:

System.out.printf("%.2f \t\t %.2f \t\t %.2f\n", interest, totalInt, total);   

或者查看DecimalFormat

答案 1 :(得分:0)

我假设问题是关于输出格式化

System.out.printf("%.2f \t\t %.2f \t\t %.2f\n", interest, totalInt, total);   

答案 2 :(得分:0)

你好像在这样循环之前保持浮动兴趣

浮动利息= 0;

while(a&lt; = t)
{

System.out.print(“”+ a +“\ t”);

一个++;

{

float R =(float)(r / 100)/ t;

interest = interest +(float)p * R;

float totalInt =(float)interest;

total = p + totalInt;

System.out.println(兴趣+“\ t \ t”+ + totalInt +“\ t”+总计);
}

 }

 }

现在执行它你会得到所需的输出,如果你满意的话。

谢谢

答案 3 :(得分:0)

我认为你想要的是,将第一行改为:

float p, t, r, total, R, interest, totalInt;

并删除循环中的浮动声明