db2 的decimal 和C语言 double的精度有关问题

db2 的decimal 和C语言 double的精度问题
decimal(20,2)
double f_amt;


可能有经验的都会遇到这个问题,金额如果是100.19,update 到数据库中,再查就可能变成100.20.
这是因为100.19在数据库中可能存储的是100.189999.经过多次累计之后,精度发生了变化。


现在高分求解。夜深了在线等,解决了另开贴散分。

------解决方案--------------------
db2的decimal好像存在这个问题,偶尔出现,你可以认为是个BUG吧,以前出过资料没有什么好的解决办法
------解决方案--------------------
这个问题似乎有人问过,
http://topic.csdn.net/u/20091020/19/18d29ae8-890f-48ce-82b0-ba0573500fc7.html
你设置一下数据库配置参数MIN_DEC_DIV_3试试
------解决方案--------------------
没办法。浮点数计算的问题。
------解决方案--------------------
浮点数基本上都会有这样问题的。

就和两个浮点数想减,不一定会是0一样。



------解决方案--------------------
decimal(20,3)试试