如何处理大数字

时间:2016-10-13 15:18:38

标签: sqlite

我试图在表中存储长整数。我的表架构看起来像 下方。

CREATE TABLE t7(a long integer);

我正在插入低于值。

insert into t7(a) values(16732595907054788167);

但是当我选择时我会得到数值如下

select * from t7;

1.67325959070548e+19

我不想使用字符串或blob作为数据类型。 如何在选择时将数字转换为长整数。

1 个答案:

答案 0 :(得分:1)

SQLite使用带符号的64位整数,因此最大可能的整数值为9223372036854775807.。

它使用dynamic typing,所以你无法做更大的整数:

CREATE TABLE test(
    Col1 LONG INTEGER,
    Col2 UNSIGNED LONG INTEGER,
    Col3 EXTREMELY HUGE LONG LONG LONG INTEGER EXTENDED ENTERPRISE EDITION,
    Col4 EH WHATEVER
);
INSERT INTO test VALUES (9223372036854775807,9223372036854775807,9223372036854775807,9223372036854775807);
INSERT INTO test VALUES (9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808);

SELECT * FROM test; 
9223372036854775807  9223372036854775807  9223372036854775807  9223372036854775807
9.22337203685478e+18 9.22337203685478e+18 9.22337203685478e+18 9.22337203685478e+18

你必须使用字符串或blob。