while循环确定输入的值是否为double

时间:2014-03-13 22:17:59

标签: java loops while-loop double

我正在开展一个相当大的项目,这只是其中包含的内容。基本上我创建了一个获取员工信息的课程,我们需要这样才能让用户输入双倍的工资率。说8.00。请注意,用户不能添加美元符号(例如$ 8.00),否则会提示用户发生错误。然而,当我测试运行代码时,代码只是崩溃而不是使用错误提示。

public static double getPayRate()
 {
    double payRate;
    System.out.println("Please enter the employee's pay rate (a numeric value): ");
    payRate = console.nextDouble();
    while(console.hasNextDouble())
    {
        System.out.println("An error occured with your input...");
        System.out.println("Please enter the employee's pay rate (a numeric value): ");
        payRate = console.nextDouble();
    }
    return payRate;
 }
}

1 个答案:

答案 0 :(得分:0)

好的,所以使用你拥有的代码,这样的方法是这样的.. 虽然此代码用于检索double值,但建议在处理money时不要使用double,有关详细信息,请参阅此帖子。 Why not use Double or Float to represent currency?

import java.util.Scanner;

public class SOTest {

    public static Scanner console = new Scanner(System.in);

    public static double getPayRate()
     {
        while(true)
        {
            System.out.println("Please enter the employee's pay rate (a numeric value):");
            try {
                return Double.parseDouble(console.nextLine());
            } catch(NumberFormatException ex) {
                System.out.println("An error occured with your input...");
            }
        }
     }

    public static void main(String[] args) {
        System.out.println(getPayRate());
    }
}