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 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);
    }
}

最佳答案

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

此外,您将 Rate 解析为 int,实际上使其为 0。您应该将其解析为 double。具体看这两行(不连续)

Rate = JOptionPane.showInputDialog(" Enter Rate, i.e 0.10 ");
int r = Integer.parseInt(Rate);

如果你查看Double类下的java API,你会发现一个与parseInt非常相似的parseDouble方法。 简单地做

double r = Double.parseDouble(Rate);

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

关于java - 简单的平均程序没有得到计算结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15735682/

相关文章:

java - 尝试计算平均值,但出现错误 : java. lang.IndexOutOfBoundsException : Index: 1, Size: 1

java - 什么是计算 ISO 8601 周数的简单好方法?

java - 我可以用哪个符号替换 "expected should equal("中的anyInt ""anyInt - anyInt - anyInt""")"

java - 什么时候不希望在 Java 中实现 toString()?

Java:查找用户设置的多个整数列表中的最大数字

java - 如何按参数值拆分Spring MVC请求映射

java - 使用递归函数构建 map

java - java中字符串拆分的正则表达式

java - 如何使用 ProgressMonitorInputStream

java - 我在服务器套接字上接受客户端连接时捕获了 IOException。现在怎么办?