числовое значение вне диапазона - PullRequest
0 голосов
/ 10 апреля 2011

когда я сохраняю данные, они выдают ошибку, т.е. числовое значение вне диапазона Я ПОЛУЧИЛ 3 ЭТОГО ПОЛЯ КАК НОМЕР ДАННОГО ТИПА В MS ACCESS DB

я получил номер мобильного телефона как 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 ]

1 голос
/ 10 апреля 2011

Вы не сказали нам, что такое tftele, но из вызванных методов я собираюсь догадаться, что это JTextField.

Если это так, ваша проблема в том, что в первом примере вы берете значение long и присваиваете double.

A double - это значение с плавающей запятой двойной точности, и поэтому для хранения значений после десятичного разряда используется много 64-битной памяти. Нет смысла хранить ваше значение в двойном значении, особенно после того, как оно было проанализировано как длинное (любое десятичное число в любом случае выдает исключение).

Я считаю, что ваш код должен использовать значение long, так как вы проанализировали его как long.

Кроме того, подумайте о перехвате NumberFormatException, когда вы делаете X.parseX (текст); заявления тоже; на всякий случай ваши пользователи вводят не числовые значения для текстового поля.

0 голосов
/ 10 апреля 2011

Ну, приложение должно сказать вам, в каком поле / строке находится ошибка.

Однако, как уже сказал Джек, это, вероятно, следующая строка: double mno= Long.parseLong(tfmno.getText());

Кстати, почему бы вам не сохранить значения в виде текста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...