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

@Pshemoありがとうございます。最大値は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

関連する問題