java - 在给定本金、利率和时间的情况下,编写一个程序来找出单利和复利之间的区别
问题描述
import java.util.*;
public class SICI{
public static void main( double rate, double time, double principal ){
Scanner in = new Scanner(System.in);
double s,c,d,ib;
s= principal*rate*time/100.0;
System.out.println("SI:" +s);
ib=(1+(rate/100.0));
c=principal*(Math.pow(ib,time)-1);
System.out.println("CI:" +c);
d=(float) c-s;
System.out.println("Difference:" + d);
sc.close();
}
}
这是我的解决方案,但是在尝试运行时,它显示:
Main method not found in the file, please define the main method as: public static void main(String[] args)
有人可以帮忙吗?
解决方案
您不能更改主要方法的签名。你必须保持原样,
public static void main(String[] args){
...
}
你可以做的是,用你需要的参数编写另一个静态方法,然后从主函数中调用它。
public static void main(String[] args) {
double rate, time, principal;
Scanner sc = new Scanner(System.in);
System.out.println("Enter rate: ");
rate = sc.nextDouble();
System.out.println("Enter time: ");
time = sc.nextDouble();
System.out.println("Enter principal: ");
principal = sc.nextDouble();
double diff = calculateDifference(rate,time,principal);
System.out.println("difference: "+ diff);
}
在 calculateDifference 方法中,传递参数并完成工作:
public static double calculateDifference (double rate, double time, double principal)
{
double s, c, d, ib;
s = principal * rate * time / 100.0;
System.out.println ("SI:" + s);
ib = (1 + (rate / 100.0));
c = principal * (Math.pow (ib, time) - 1);
System.out.println ("CI:" + c);
d = (float) c - s;
return d;
}
推荐阅读
- php - Symfony 3.4/Doctrine 2 一对一关联错误
- c# - 卸载程序集?
- sql - 如何在条件下选择PostgreSQL中的时间戳值?
- sql - 在有时需要追溯日期时根据日期运行总计
- java - 这是在java中设置决策树的正确方法吗?
- docker - 为什么网站只能加载 Safari(否则 DNS 超时)?
- sed - sed * 只修改第一个文件
- http - servlet请求对象如何分配给线程并返回响应对象
- android - 我只想在android中单击新图片时启动服务。我该怎么做呢?
- python - 使用 Python 和 Postgresql 创建表和图形的伪代码或资源