达梦数据库类型的精度与标度

本文介绍了达梦数据库中NUMBER数据类型的使用,包括精度和标度的概念。NUMBER(4,1)例如,表示最多4位数字,其中1位是小数。不指定精度和标度时,默认精度为38。当插入的数值超过精度或标度,系统将处理超出部分。通过实例展示了不同精度和标度设置下的数值存储情况。" 110986303,10293645,使用APScheduler实现Python定时任务,"['Python', '任务调度', 'APScheduler', 'cron调度', 'Python库']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梁敬彬梁敬弘兄弟出品

NUMBER[(精度 [, 标度])]

NUMBER数据类型用于存储零、正负定点数。其中:精度是一个无符号整数,定义了总的数字数,精度范围是1至38。标度定义了小数点右边的数字位数。一个数的标度不应大于其精度,如果实际标度大于指定标度,那么超出标度的位数将会四舍五入省去

精度与标度

比如

NUMBER(4,1)定义了小数点前面3位和小数点后面1位,共4位的数字,范围在-999.9
到999.9。所有NUMERIC数据类型,如果其值超过精度, 系统会返回一个出错信息,如果超过标度,则多余的位会被截断。如果不指定精度和标度, 缺省精度为38。

SQL> create table t_c( id int,value  number(2,2));

操作已执行


已用时间: 1.775(毫秒). 执行号:396.


SQL> insert into t_c(id,value) values (1, 8.88) ;


insert into t_c(id,value) values (1, 8.88) ;


[-6170]:列[VALUE]精度超出定义.


已用时间: 0.303(毫秒). 执行号:0.


SQL> insert into t_c (id ,value) values (2, 0.88) ;


影响行数 1



已用时间: 0.426(毫秒). 执行号:398.


SQL> insert into t_c (id ,value) values (3, 0.888) ;


影响行数 1



已用时间: 1.101(毫秒). 执行号:399.


SQL> select * from t_c;



行号     ID          VALUE


---------- ----------- -----


1          2           0.88


2          3           0.89

我自己总结的人话,如下:

规律: number(a,b)
b是小数位,a是表示整数位+小数位不能超过的和,可以等于。
另外整数位留下的机会是a-b得到的机会。
比如number(2,2), 表示留给整数位的机会已经没有了(2-2=0)。类似0.8 0.88这类的
比如number(4,2), 表示留给整数位的有1位或者2位的机会(4-2=2)。类似8.8 88.8 88.88 这类。
比如number(4,3), 表示留给整数位的只有1位的机会(4-3=1)。类似8.8 8.88 8.888这类

另外从这个规律来看,NUMBER[(精度 [, 标度])] 精度小于标度,也是不可能的:)

在这里插入图片描述

国内一线知名数据库专家、畅销书《收获,不止Oracle》作者梁敬彬老师,做客【达梦会客厅】

达梦数据库知识总结链接贴

公众号:收获不止数据库

系列回顾
“大白话人工智能” 系列
“数据库拍案惊奇” 系列
“世事洞明皆学问” 系列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

收获不止数据库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值