ifx 发表于 2004-10-20 13:05

db2的DECIMAL在C中如何使用?

db2表中建立的decimal字段,想在sqc中使用,用什么类型?怎么运算?多谢!

jourmen 发表于 2004-10-20 15:36

db2的DECIMAL在C中如何使用?

随便把所有的类型都说一下:


DB2数据类型        C数据类型
Smallint                       short
Integer                       Long
Decimal(p,s)        无
Double                       Double
Date                       Char
Time                       Char
Timestamp            Char
Char(X)                Char
Varchar(X)       Char
Graphic(X)       Wchar_t
Vargraphic(X)    Wchar_t

对于DECIMAL数据类型,在C语言中也没有对应的数据类型。

例:
字段: decimal col(10,2)

取数据: float v_col;
插数据: char v_amount; //先存放:10位+小数点一位+字符串结束符
         double v_amount;   //插时用atof来转换一下就可以了


你试试!

Law 发表于 2004-10-21 10:31

db2的DECIMAL在C中如何使用?

如果你的数据库里面是当整型在使用,那么,你可以直接使用long就可以了,一般你可以使用double 来对应 decimal

ifx 发表于 2004-10-21 16:17

db2的DECIMAL在C中如何使用?

谢谢!
不过,既然要用decimal,为的就是它的精度,而double是无法满足的。
不知道是不是银行有用它的,如果是,他们怎么表示那些大的惊人的金额呢?

jourmen 发表于 2004-10-21 16:37

db2的DECIMAL在C中如何使用?

原帖由 "ifx" 发表:
谢谢!
不过,既然要用decimal,为的就是它的精度,而double是无法满足的。
不知道是不是银行有用它的,如果是,他们怎么表示那些大的惊人的金额呢?


double还不满足你啊?精度足够

ifx 发表于 2004-10-21 17:34

db2的DECIMAL在C中如何使用?

可能现实生活中,double应该足够用了,但是,decimal提供的31精度,double是无法满足的。
因为db2不是很熟悉,所以,不知道应该怎么处理decimal。
既然db2提供这种类型,相信会有办法处理这个的,只是,我还不懂,希望大家不要见笑。

Law 发表于 2004-10-22 09:55

db2的DECIMAL在C中如何使用?

哈,老大,在db2 7版本里面没有对应c的decimal类型
db2都说了,原文如下:
DECIMAL(p,s)
(484 or 485)         No exact equivalent; use double

jourmen 发表于 2004-10-22 10:29

db2的DECIMAL在C中如何使用?

原帖由 "ifx" 发表:
可能现实生活中,double应该足够用了,但是,decimal提供的31精度,double是无法满足的。
因为db2不是很熟悉,所以,不知道应该怎么处理decimal。
既然db2提供这种类型,相信会有办法处理这个的,只是,我还不懂,..........

大哥啊!你什么应用要用上31位精度啊?

也太精了吧?

我都好奇了!说来我听听

Ruckie 发表于 2009-10-20 19:34

db2的decimal类型有时候会在update时出现少0.01的情况……

至今不知道为何……
页: [1]
查看完整版本: db2的DECIMAL在C中如何使用?