UNIX C的问题
在UNIX C通过存储过程操作数据库(sybase)
表A有一个字段B,类型是numeric(20,4),整数部分最多可以有16个9
在C程序里有一个字符串“9999999999999999.0000” (16个9)
double lAmount = 0.0;
lAmount= strtod ("9999999999999999.0000", (char **) NULL);
在把lAmount传递给存储过程,插入到表A的字段B内。
但是在调试中我们发现,strtod 后lAmount=10000000000000000.0,整数部分有17位,一旦向表A插时,就溢出了
现在的问题是double不能表示9999999999999999.0000,该如何解决?