Java如何使用double或string?

标签 java

好吧,所以我试图让用户输入“随机”一词或销售税的数字 (0.01),我的提示只能使用 keybd.next() 或 keybd.nextDouble() 所以我怎样才能轻松做到这一点?

public void calculateSalesReceipt(){
    System.out.println("Enter the sales tax percentage (ex. 0.08 for 8%) or type \"random\" for a random number: ");
    double tax = keybd.nextDouble();
    if(tax < 0){
        System.out.println("You must enter a value equal to or greater than 0!");
    }else{
    getFinalPricePreTax();
    total = total;
    taxcost = total * tax;
    double finaltotal = total * taxcost;
    System.out.println("Sales Receipt");
    System.out.println("-------------");
    for(Item currentProduct : shoppingBag){
        System.out.println(currentProduct.getName() + " - " + currentProduct.getUnits() + " units " + " - $" + currentProduct.getCost());
    }
    System.out.println("Total cost: $" + total);
    System.out.println("Total tax: $" + taxcost);
    System.out.println("Total cost with tax: $" + finaltotal);
}

谢谢

最佳答案

假设 keybd 是一个 Scanner

http://download.oracle.com/javase/6/docs/api/java/util/Scanner.html

您需要使用 hasNextDouble() 来确定它是否为 double ,然后采取相应的行动。

选项 B(尽管您说您的要求排除了这一点)是简单地将其作为 String 读取,然后使用 Double.valueOf(String)Double.parseString(String) 静态方法并捕获 NumberFormatException 以确定有效性。

根据 OP 的评论进行编辑:

System.out.println("Enter the sales tax ... blah blah");
if (keybd.hasNextDouble())
{
    double tax = keybd.nextDouble();    
    // Do double stuff
}
else
{
   // Get String and Do string stuff
}

关于Java如何使用double或string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5923274/

相关文章:

java - 如何对复杂 TypeToken 的正确配置进行单元测试?

java - 使用 jdbi 执行创建或更新

java - 闪烁的 JFrame

java - 如何修复 org.hibernate.MappingException 取消映射类

java - 在 junit 中断言 UUID

java - Java进度条不更新

java - 如何使用 apache poi 3.6 获取 Excel 工作簿数学运算符?

java - 不使用 peek() 从堆栈中删除元素

java - 为什么在http请求中编码?

Javafx 2D 迷宫标准解决方案不起作用