Java 简单的平均程序不能得到计算结果

Java 简单的平均程序不能得到计算结果,java,Java,运行时,结果就像没有输入值一样。 我希望有人或所有人都能对代码进行审查和评论 package practice_array_tables; import javax.swing.*; public class Practice_Array_Tables { public static void main(String[] args) { //Variables String Principal, Rate, Time; //Prompt u

运行时,结果就像没有输入值一样。 我希望有人或所有人都能对代码进行审查和评论

package practice_array_tables;

import javax.swing.*;

public class Practice_Array_Tables {
    public static void main(String[] args) {
     //Variables
        String Principal, Rate, Time;

        //Prompt user for input via JOptionPane.showInputDialog
        Principal = JOptionPane.showInputDialog(" Enter Principle Amount. ");

          //Enter Rate.
        Rate = JOptionPane.showInputDialog(" Enter Rate, i.e 0.10 ");

        //Enter Time
        Time = JOptionPane.showInputDialog(" Enter Time ");

        //Parse String to Int.
        int p = Integer.parseInt(Principal);
        int r = Integer.parseInt(Rate);
        int t = Integer.parseInt(Time);

        //Compute Compound Interest.\
       double CompoundInterest = p * Math.pow((1+r / 100), t );
       double c = CompoundInterest;

       //Print results to JOptionPane.showMessageDialog.
        JOptionPane.showMessageDialog(null, " your answer " + c);
    }
}

为什么你要做一个双精度,然后把同一个双精度分配给一个新的双精度? 除此之外,我还认为你的复利公式是错误的。 A=P(1+(r/n))^nt

此外,您正在将速率解析为int,实际上是0。您应该将其解析为一个double。具体看这两行(不是连续的)

如果在java API中查找Double类,您会发现一个与parseInt非常相似的parseDouble方法。 干脆

double r = Double.parseDouble(Rate);

这将给你你所期望的;带小数点的数字。我怀疑你的问题可能是由乘以0引起的。

为什么要做一个双精度,然后将相同的双精度分配给一个新的双精度? 除此之外,我还认为你的复利公式是错误的。 A=P(1+(r/n))^nt

此外,您正在将速率解析为int,实际上是0。您应该将其解析为一个double。具体看这两行(不是连续的)

如果在java API中查找Double类,您会发现一个与parseInt非常相似的parseDouble方法。 干脆

double r = Double.parseDouble(Rate);

这将给你你所期望的;带小数点的数字。我怀疑您的问题可能是由于乘以0而引起的。

您可以添加更多,使其成为一个有效的答案。不要只是指出问题所在,还要展示如何解决问题。你可以添加更多内容,使之成为一个有效的答案。不要只是指出问题所在,还要展示如何解决问题。