我正在尝试用Java创建一个基本的命令行会计应用程序,这是我到目前为止所提出的:
import java.util.Scanner;
public class Accounting {
public static void main(String[] args) {
while(true){
Scanner input = new Scanner(System.in);
String userinput = input.nextLine();
String[] parts = userinput.split(" ");
String part1 = parts[0];
String part2 = parts[1];
String part3 = parts[2];
int a = Integer.parseInt(part1);
float r = Float.parseFloat(part2);
int t = Integer.parseInt(part3);
int Total = (int) Math.pow(a + ( 1 + ( r / 100 )), t);
System.out.println(Total);
您输入3个输入数量,费率和时间。我被告知公式是Total = a(1+(r/100))^t
。每当我输入像25000 6.9 15这样的输入时,我得到的数字超过20亿(2147483647)任何想法我做错了什么?
答案 0 :(得分:4)
试试这样:
double total = a*Math.pow(1.0+(r/100.0), t);
答案 1 :(得分:0)
Math.pow(a + ( 1 + ( r / 100 )), t)
与“Total = a(1+(r / 100))^ t”不同。正确的(第二)方程将1到2之间的值提高到t;不正确的第一个引发(在你的例子的情况下)25000到15。