【问题标题】:extracting wrong value from database从数据库中提取错误的值
【发布时间】:2016-08-16 17:53:17
【问题描述】:

我正在向 10 位数字的数据库中插入一个长值。 (例如:9876543219)。它正确地将值保存在数据库中。但是当我尝试从数据库中提取数据时,我得到一个不同的数字,例如 (1286608627)。

注意:如果数字小于 10 位,一切正常。

我正在使用以下代码从数据库中获取数据:

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

我可以在数据库中看到 getMyNumber 的值为:9876543219(如预期的那样)。

【问题讨论】:

  • 提示:int 的最大值是多少?
  • 提示 2:google 整数溢出。
  • @Pshemo 谢谢。最大值应为 2,147,483,647。那么,如果我们在最大值之前给出应该可以正常工作的值,对吗?另外你能告诉我我应该用什么让它工作到 999999999。
  • 正确。 9,876,543,219 在该值之前吗?
  • @Pshemo Perfect 获得了解决方案并获得了概念。非常感谢:)

标签: java database int long-integer


【解决方案1】:

使用

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

因为整数范围只有2^31-1

或者您可以将其转换为BigInteger,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多