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的有效位开始截断。

同时也解决了用datafactory插入数据时超过范围的问题,因为我感觉datafactory的自定义DECIMAL类型字段的时候,整数部分不是很准确,存在超过范围的情况,因此需要手动检查一下这些字段的定义。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值