我使用sqlserver,想存储数据:106594712998这个数 但是存在里面看到是正确的 ,但是我的程序登录有 我在去看这个数据就变成了负数了:-779469402
请问一下这是为什么呢?
还有比bigint容量更大的是数字的数据类型么?
我程序取的时候使用result.getInt();取值,不行改变程序。
我使用sqlserver,想存储数据:106594712998这个数 但是存在里面看到是正确的 ,但是我的程序登录有 我在去看这个数据就变成了负数了:-779469402
请问一下这是为什么呢?
还有比bigint容量更大的是数字的数据类型么?
我程序取的时候使用result.getInt();取值,不行改变程序。
不是数据类型的问题,bigint存储从-2^63 (-9223372036854775808)到2^63-1(9223372036854775807) 范围内的数字。存储大小为 8 个字节。但是在你取值的时候,因为数据类型是bigint的,程序会自动把你数据转换成int类型,你的数据106594712998的范围超出int的最大范围,所以程序会自动截取,最后出现-779469402。所以在获取值的时候应该改为:result.getLong()取值。