Double不能被解除引用

时间:2012-11-18 03:58:20

标签: java

问题

可能是我的问题的原因是什么,我该如何解决它:

如果用户输入的值而不是双,我的程序会崩溃。

计划正文

public class Annual
{
    public static void main(String[] args)
    {
        Scanner percent = new Scanner(System.in);
        System.out.println("Please enter annual sales:");
        double yearly = percent.nextInt();
        double T = 50000;
        double Amt;
        if (yearly.matches("[0-9]+") && yearly.length() > 2 && yearly.length() <= 8)
        {
            double YrPrcnt = yearly * .05;
            Amt = T + YrPrcnt;
            System.out.print("The Annual Payrate for employee is:");
            System.out.print(Amt);
        }
    }
}

错误消息

double无法解除引用”和“非法开始表达

我尝试了什么

最简单的方法:检查用户输入是否为数字,如果是,则提供错误消息。

系统信息

我在NetBeans 7.2中对此进行编码,并且是Java新手。

2 个答案:

答案 0 :(得分:2)

yearly.matches

double(每年)是原始类型,你不能在原语上调用方法(匹配(或)任何)。

要检查输入是否为范围,您需要使用大于和小于运算符。

答案 1 :(得分:1)

if (yearly.matches("[0-9]+") && yearly.length() > 2 && yearly.length() <= 8)

您在此处将yearly视为字符串。如果这是你的意图,那么将用户输入读入String,对该字符串执行检查并使用Double.parseDouble()方法将其转换为double。