Я пытаюсь написать программу для школы, используя класс BigDecimal. Программа представляет собой калькулятор процентной ставки и и окончательный вывод должен быть somethig как:BigDecimal Class Java
Loan Amount: whatever loan amount is in dollars
Interest Rate: as a percent
Interest: amount of interest paid in dollars
continue? Y/N:
Книга не ясно, о том, как кодировать класс BigDecimal, и я использую Eclipse, так что в любое время я внести изменения Я получаю ошибку, которая запутывает. Может ли кто-нибудь взглянуть на это и установить меня в правильном направлении? Я использую Java SE6 от Мураха, и книга просто не очень полезна.
Спасибо!
import java.util.Scanner; //import scanner
import java.text.NumberFormat; //import number format
import java.math.*; //import math classes
public class InterestCalculator //create public class
{
public static void main(String[] args)
{
Scanner calc = new Scanner(System.in); //create scanner
double LoanAmount, InterestRate, Interest; //declareLoanAmount,InterestRate, and Interest as double
//welcome user to the Interest Rate Calculator
System.out.println("Welcome to The Interest Rate Calculator");
System.out.println();
//perform choice calculations until choice isn't equal to "y" or "Y"
String choice = "y";
while (choice.equalsIgnoreCase("y"))
{
//Get Loan Amount from user
System.out.println("Enter Loan Amount: ");
LoanAmount = calc.nextDouble();
//Get Interest rate from user
System.out.println("Enter Interest Rate: ");
InterestRate = calc.nextDouble();
BigDecimal decimalInterest = new BigDecimal(Double.toString(Interest));
decimalInterest = decimalInterest.setScale(2, RoundingMode.HALF_UP);
BigDecimal decimalInterestRate = new BigDecimal(Double.toString(InterestRate));
decimalInterestRate = decimalInterestRate.setScale(2, RoundingMode.HALF_UP);
//calculate interest
System.out.println("message");
//prompt user to continue?
System.out.println("Continue? Y/N: ");
choice = calc.next();
System.out.println();
}
}
}
У меня также возникла проблема с кодированием вычисления, которое должно быть чем-то вроде Interest = LoanAmount * InterestRate, и я знаю, что моя печать внизу просто напечатает слово «Сообщение». В моей предыдущей попытке я пытался написать строку, которая будет печатать весь мой вывод, и я назвал строковое сообщение. –
какая ошибка вы получаете? – Kris
Я предлагаю вам взглянуть на [BigDecimal javadoc] (http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html) - он довольно всеобъемлющий. В общем, «BigDecimal» неизменен, поэтому каждый раз, когда вы выполняете операцию, вы получаете новый экземпляр. Например: BigDecimal someValue = decimalInterest.multiply (decimalInterestRate); 'Кроме того, вам не нужны строковые преобразования, такие как' Double.toString (Interest) '-' BigDecimal' ctor принимает двойники, а что нет (посмотрите javadoc!) –