数值超出范围

时间:2011-04-10 18:16:41

标签: java ms-access

当我保存数据时,它给出了错误,即NUMERIC VALUE OUT OF RANGE 我在MS ACCESS DB中已经将这3个字段作为数据库号

我被移动电话号码4343242434,我写的代码是:

double mno= Long.parseLong(tfmno.getText());
len = tfmno.getText().length();
if(len!=10) {
JOptionPane.showMessageDialog(null,"Enter The 10 Digit Mobile No","Error",JOptionPane.ERROR_MESSAGE);
return;
}

我的密码为:2222222,我的密码代码为:

nt pincode=Integer.parseInt(tfpcd.getText());
len1 = tfpcd.getText().length();
if(len1!=7) {
JOptionPane.showMessageDialog(null,"Enter The 7 Digit Pin Code","Error",JOptionPane.ERROR_MESSAGE);
return;
}

我接到电话号码:2222333,我的代码是:

int tele=Integer.parseInt(tftele.getText());
        len2 = tftele.getText().length();
        if(len2!=7){
        JOptionPane.showMessageDialog(null,"Enter The 7 Digit Telephone No","Error",JOptionPane.ERROR_MESSAGE);
        return;
        }

告诉我哪个值正在执行,我该怎么做

2 个答案:

答案 0 :(得分:1)

你没有告诉我们tftele是什么,但是从调用的方法来看,我猜它是一个JTextField。

如果是这样,您的问题是,在第一个示例中,您将获取long值并分配给double

double是一个双精度浮点值,因此使用了很多64位分配的内存来存储小数位后的值。将值存储在double中是没有意义的,特别是在它被解析为long之后(任何小数位都会抛出异常)。

我相信您的代码应使用long值,因为您将其解析为long。

另外,考虑在执行X.parseX(text)时捕获NumberFormatException;陈述也是;以防您的用户为文本字段键入非数字值。

答案 1 :(得分:0)

嗯,应用程序应该告诉您错误所在的字段/行。

然而,就像杰克告诉你的那样,可能就是这句话:double mno= Long.parseLong(tfmno.getText());

顺便问一下,为什么不将这些值存储为文本?