Итак, моя программа правильно компилируется и работает. Однако, когда программа вычисляет простой интерес, отображается неверное значение. Скажем, он должен отображать $ 470, вместо этого он печатает только 4.7, извините за плохое объяснение, может ли кто-нибудь понять, почему это происходит?Новым для программирования, нужна небольшая помощь
import java.io.*;
import java.util.Scanner;
import java.io.File;
//import java.nio.file.*;
//import java.nio.file.Paths;
public class BankInterest {
public static void main (String [] args) throws IOException
{
/* TASK 1: Declare variables */
Scanner user_input = new Scanner (System.in);
boolean exit;
int accountType;
double balance;
double principal;
// double userInterest;
double r;
double r2;
int year;
String commBank = ("commbank.txt");
String westPac = ("westpac.txt");
/*Check if the expected command line is provided */
if (args.length < 1) {
/* Display the Usage */
System.out.println("Usage: java BankInterest interestRateFileName");
/* Programs quits with an error code */
System.exit(-1);
}
/* TASK 2: Read interest rates from a file */
String filename = (args[0]);
Scanner textReader = new Scanner(new File(filename));
r = textReader.nextDouble();
r2 = textReader.nextDouble();
System.out.println(r);
System.out.println(r2);
/* TASK 3: Take user input - Which Account */
Scanner keyboard = new Scanner (System.in);
System.out.println("Which Account: ");
System.out.println("1 - Savings");
System.out.println("2 - Term Deposits");
accountType = keyboard.nextInt();
if (accountType == 1) {
accountType = 1;
}
else if (accountType == 2) {
accountType = 2;
}
/* TASK 4: Take user input - Principal and Period */
Scanner input = new Scanner (System.in);
System.out.println("Principal: ");
principal = keyboard.nextDouble();
System.out.println("Years: ");
year = keyboard.nextInt();
/* TASK 5: Calculate balance for the chosen account type */
if (accountType == 1) {
double userBalance = principal * Math.pow((1 + r/100), year);
double userInterest = userBalance-principal;
System.out.println("");
System.out.println("The Compound Interest is: " + userBalance);
System.out.println("The total amount of Interest earned:" + userInterest);
}
else if (accountType == 2) {
double userBalance = (principal * r2 * year)/100;
double userInterest = userBalance-principal;
System.out.println("");
System.out.println("The Simple Interest is: " + userBalance);
System.out.println("The total amount of Interest earned:" + userInterest);
}
}
}
Используйте отладчик, чтобы узнать, что происходит, или если вы не знакомы с использованием отладчика (лучше изучите его), вы также можете распечатать значения в разных местах, чтобы узнать, являются ли они тем, что вы ожидаете от них. – Kayaman
Остановить деление на 100, может быть? Я думаю, нам понадобится дополнительная информация, например, какие ваши материалы есть, прежде чем мы сможем вам помочь. – simonv
Печать неправильного номера, происходит ли это со всеми числами (суммарный интерес, общий интерес, простой интерес)? Кажется ли, что он всегда печатает 1/100 от числа, которое должно быть? –