小数之和只有16位吗

Are there only 16 digits in a sum of decimal

create table t (mnt decimal(20,2));
insert into t values (111340534626262);
insert into t values (0.56);
select sum(mnt) from t;
select sum(mnt::decimal(20,2))::decimal(20,2) from t;

我无法获得超过 16 位数字。有什么想法吗?

使用 IDS 12.10FC10。

当我 运行 我的 sqlcmd 程序中显示的代码时,我得到输出:

111340534626262.56
111340534626262.56

当我 运行 Informix 的 DB-Access 程序中显示的代码时,我得到以下输出(略有改动):

           (sum) 

 111340534626263

1 row(s) retrieved.        

    (expression) 

 111340534626263

1 row(s) retrieved.

因此,问题可能出在 DB-Access 的显示机制上,而不是服务器本身。

如果您正在编写自己的代码,则可以相对直接地确保显示准确完整。使用 DB-Access 不一定是最好的方法。