如何以百分比形式扫描数字?

时间:2014-02-24 07:12:54

标签: java

我正在尝试在java中创建一个程序,该程序应该计算任何给定购买的每月付款和融资的总利息。该应用程序还应允许用户比较两个不同付款计划之间的差异。

我有什么

    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the total cost of the purchase:");
    float tPurchase = scan.nextFloat();
    System.out.println("Enter your first down payment:");
    float Paymentone = scan.nextFloat();
    System.out.println("Enter your second down payment: ");
    float Paymenttwo = scan.nextFloat();
    System.out.println("Enter first lenght of time to pay");
    float paylenght = scan.nextFloat();
    System.out.println("Enter second length of time to pay:");
    float paylength2 = scan.nextFloat();
    System.out.println("Enter APR:");

我的问题是如何让程序以百分比形式扫描下一个数字。例如,总购买10,000,首付3,000,第二次下降5,000,APR一次1%,三年和APR两次2%,5年。无需告诉我如何计算,如何使其扫描为百分比。

2 个答案:

答案 0 :(得分:1)

如何以百分比扫描下一个数字与您在上面所做的事情没有什么不同。

也许你唯一需要改变的是:

System.out.println("Enter the percentage:");

您可以通过以下方式检索输入:

float percentage = scan.nextFloat(); //or
int percentage = scan.nextInt();

或者,如果您希望用户在其输入中包含%,则可能需要执行以下操作:

String strPercentage = scan.nextLine();
float percentage = Float.parseFloat(strPercentage.substring(0,strPercentage.length()-1));

当然,您需要首先验证用户输入以匹配您想要的值。

答案 1 :(得分:0)

这取决于您希望应用程序的行为方式。是否接受aor采用xx %x.xx或仅xx的形式?

然后这段代码将处理所有这三种情况:

System.out.println("Enter APR:");
String aprTemp = scan.next();
int apr;
if (aprTemp.contains("%")) {
    String aprStr = aprTemp.substring(0, aprTemp.indexOf("%"));
    apr=Integer.parseInt(aprTemp);
}else if(aprTemp.matches("[0-9]+")){ // regex for number
    apr=Integer.parseInt(aprTemp);
}else if(aprTemp.matches(""^([+-]?\\d*\\.?\\d*)$""){ // regex for float
   float aprFloat=Float.parseFloat(aprTemp);
}