Oracle 基本操作
-
number(p,s)
例子:number(5,2) '5'代表当前有效数字最多为5个,'2'代表小数点右边有效数字为2个。那么小数左边的有效数字为3个。即这里的5,2代指长度。
s>0情况:精确到小数点右边s位,并且四舍五入,验证有效位数<=p;
测试数据:number(5,2)
- insert into t_user(tid) values(123.45)//123.45
- insert into t_user(tid) values(123.456)//123.46
- insert into t_user(tid) values(1.456)//1.46
- insert into t_user(tid) values(1234.567)//报错
s>p情况:小数点右边至少有s-p个0填充
测试数据:number(4,5)
- insert into t_count(tid)values(1) //报错
- insert into t_count(tid)values(.1) //报错
- insert into t_count(tid)values(.01) //正确
- insert into t_count(tid)values(.001) //正确
- insert into t_count(tid)values(.0001) //正确
- insert into t_count(tid)values(.00001) //正确
- insert into t_count(tid)values(.000001) //正确添加,但结果为0,因为小数点有效个数为5个,超过这个数自动四舍五入
- insert into t_count(tid)values(.000009)//正确添加,值为0.00001
s<0 精确到小数点左边的位,并且四舍五入,验证有效的数字位数为<=p+|s|,小数的左边有效数字是几位?实际添加数据的位数-|s|位,并将元数据的末尾的|s|位四舍五入并替换为0
测试数据:number(5,-2)
- insert into t_count1(tid)values(12345) //12300
- insert into t_count1(tid)values(123456)//123500
- insert into t_count1(tid)values(1234567)//1234600
- insert into t_count1(tid)values(12345678)//报错
- insert into t_count1(tid)values(9912395.999999999999)//9912400
- insert into t_count1(tid)values(99912395.999999999999)//报错