2016-08-16 6 views
1

Я вставляю длинное значение в базу данных из 10 цифровых цифр. (пример: 9876543219). Он правильно сохраняет значение в базе данных. Но когда я пытаюсь извлечь данные из базы данных, я получаю другое число вроде (1286608627).Извлечение неправильного значения из базы данных

Примечание: если число меньше 10 цифр, все работает нормально.

Я использую следующий код, чтобы получить данные из базы данных:

int getmyNumber = ((BigDecimal) TTRefermap.get("GET_MY_NUMBER")).intValue(); 

я могу увидеть значение getMyNumber в базе данных как: 9876543219 (как и ожидалось).

+1

Подсказка: Что такое максимальное значение для 'int'? – Pshemo

+0

Подсказка 2: google для переполнения целого числа. – Pshemo

+0

@ Благодарю спасибо. Максимальное значение должно быть 2,147,483,647. Итак, если мы даем значения до максимального значения, которое должно работать нормально правильно? Также можете ли вы сообщить мне, что я должен использовать, чтобы заставить его работать до 999999999. – user3213490

ответ

1

использование

long getmyNumber = ((BigDecimal) TTRefermap.get("GET_MY_NUMBER")).longValue(); 

, потому что диапазон целочисленных только 2^31-1

или вы можете преобразовать его в BigInteger следующим образом:

BigInteger getmyNumber = ((BigDecimal) TTRefermap.get("GET_MY_NUMBER")).toBigInteger(); 
+0

Большое спасибо за ваш ответ. Это сработало :) – user3213490

Смежные вопросы