为了账号安全,请及时绑定邮箱和手机立即绑定

还是不懂这个number(p,s),s为负数的逻辑

https://img1.sycdn.imooc.com//5c11c10f0001f1cd06530530.jpg

如图,字段b的数据类型是number(6,-3),但是能够插入和显示的数据都不止6位,plsql和sqlplus都是这样,为什么呢

更新:

https://img1.sycdn.imooc.com//5c11c17e0001236d05820113.jpg

图一插入的数据长度最大为9,图二是10,报错了。

重复一次,还是这样。

所以它的逻辑是 允许写入的整数部分的最大长度是p+s(s<0);

并且它截取3位是这样截的整数后三位为0,第四位四舍五入,跟的小数部分的都不同,跟数学的四舍五入逻辑也不同

感觉number(p,s)这个数据类型在s的符号不同的时候都不是同一个数据类型。

正在回答

1 回答

插入数字的整数部分最大长度应该是p-s,所以上图能够插入的最大长度是6-(-3)=9;

如果s为负数时,就是对小数点左边的s个数字进行舍入。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

还是不懂这个number(p,s),s为负数的逻辑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信