这是一项家庭作业,我正在尝试编制兴趣计算器。我需要使用BigDecimal类,但无法弄清楚如何以货币或百分比输出。我不确定要问什么问题,但我将发布两个代码BigDecimal类代码,另一个代码以我需要的方式显示输出但不使用BigDecimal。任何建议表示赞赏。
import java.util.Scanner;
import java.math.*;
public class project3a
{
public static void main(String[] args)
{
System.out.println("Welcome to the interest calculator");
System.out.println();
// create a scanner object and start while loop
Scanner sc = new Scanner(System.in);
String choice ="y";
while (choice.equalsIgnoreCase("y"))
{
//Get input from user
System.out.print("Enter Loan amount: ");
double Loanamount = sc.nextDouble();
System.out.print("Enter Interest Rate: ");
double interestrate = sc.nextDouble();
//calculate results
double Interest = Loanamount * interestrate;
//format
BigDecimal decimalLoanamount = new BigDecimal(Double.toString (Loanamount));
decimalLoanamount = decimalLoanamount.setScale(2, RoundingMode.HALF_UP);
BigDecimal decimalinterestrate = new BigDecimal(Double.toString(interestrate));
BigDecimal decimalInterest = new BigDecimal (Double.toString(Interest));
decimalInterest = decimalInterest.setScale(2,RoundingMode.HALF_UP);
//Display results
System.out.println("Loan amount: " + decimalLoanamount);
System.out.println("Interest rate: " + decimalinterestrate);
System.out.println("Interest:" + decimalInterest);
System.out.println();
//see if user wants to continue
System.out.print("Continue? (y/n): ");
choice = sc.next();
System.out.println();
}
}
}
import java.util.Scanner;
import java.text.NumberFormat;
import java.math.*;
public class project3a
{
public static void main(String[] args)
{
System.out.println("Welcome to the interest calculator");
System.out.println();
// create a scanner object and start while loop
Scanner sc = new Scanner(System.in);
String choice ="y";
while (choice.equalsIgnoreCase("y"))
{
//Get input from user
System.out.print("Enter Loan amount: ");
double Loanamount = sc.nextDouble();
System.out.print("Enter Interest Rate: ");
double interestrate = sc.nextDouble();
//calculate results
double Interest = Loanamount * interestrate;
//format and display results
NumberFormat currency = NumberFormat.getCurrencyInstance();
NumberFormat percent = NumberFormat.getPercentInstance();
String message =
"Loan amount: " + currency.format (Loanamount) + "\n"
+ "Interest rate: " + percent.format (interestrate)+ "\n"
+ "Interest: " + currency.format (Interest) + "\n";
System.out.println(message);
//see if user wants to continue
System.out.print("Continue? (y/n): ");
choice = sc.next();
System.out.println();
}
}
}
答案 0 :(得分:0)
BigDecimal
使用您可以在doubleValue()
中使用的方法NumberFormat
。
BigDecimal bd = new BigDecimal("15.25");
NumberFormat currency = NumberFormat.getCurrencyInstance();
NumberFormat percent = NumberFormat.getPercentInstance();
System.out.println( currency.format( bd.doubleValue() ) ); //In Brazil outputs R$ 15,25
System.out.println( percent.format( bd.doubleValue() ) ); // 1.525%