Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

DB2的DECIMAL之我见(原创)

Posted on 2009-05-04 14:16 Prayer 阅读(4808) 评论(1)  编辑 收藏 引用 所属分类: DB2
      20071011公司的编程中,和我的同事讨论了DB2的DECIMAL字段属性的用法。

        公司创建表的时用的是DECIMAL(13,2),我和同事认为它为13个整数位数+2为有效数字,因为在打印银行交易的FORM时遇到了难题。输出和建表的长度不一样,我们以为它会打印出15为长度(13位整数+2位有效数字),但是却遇到了难题。

         经过我们的近一个小时的讨论与时间,可以看出,在DECIMAL(13,2)的数据库的插入时,我们首先输入的数据为1234567890123.99,数据库报出错误:长度超出了规定长度。

          我们在此基础上有删除一个整数位,123456789012.99,结果还是报长度超出了范围,经过我们的查找资料,得到了一初步的认证,就是整数位+小数位一共为13位,因为在1234567890.99的数据插入中结果成功。

          于是我们又试验了1234567890.999,结果显示插入成功,打开数据库中发现了插入的数据在数据库中保存的数据为1234567890.99将第三位小数位给截断。

          我们得到了最后的结论,在DECIMAL(m,n)的设置中,整数的位数不能大于(m-n),但小数位可以大于n,但会从大于n的有效位开始截断。

Feedback

# re: DB2的DECIMAL之我见(原创)  回复  更多评论   

2014-01-20 12:43 by 老夫子
我的理解:m是长度,n是精度。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理