当数字的精度被定为number(3,2)时, 这时他能输入的数字整数部分只能是3-2=1位, 小数位如果不够会用0补齐, 超出的四舍五入保留3位小数.

SQL> insert into t_te(num1) values(45.67882);
insert into t_te(num1) values(45.67882)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num1) values(12.3);
insert into t_te(num1) values(12.3)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num1) values(1.3);
1 row inserted

SQL> select num1 from t_te;
NUM1
-----
1.30


当数字的精度被定为number(3,0)时, 这时能输入的数字整数部分只能是小于5位的, 小数部分全部四舍五入, 只留下整数. 这种情况在给定义列的数据类型的时候会被系统默认成number(3).

SQL> insert into t_te(num2) values(123.45);
1 row inserted

SQL> select num2 from t_te;
NUM2
----
123

SQL> insert into t_te(num2) values(1234.45);
insert into t_te(num2) values(1234.45)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num2) values(1.45);
1 row inserted

SQL> select num2 from t_te;
NUM2
----
123
1

SQL> insert into t_te(num2) values(1.89);
1 row inserted

SQL> select num2 from t_te;
NUM2
----
123
1
2


当数字的精度被定为number(2,3)时, 这时能输入的数字就只能是小数了, 而且只能是小数点后(3-2=1)位小数, 整数位不能有数字.

SQL> insert into t_te(num3) values(1.89);
insert into t_te(num3) values(1.89)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num3) values(0.89);
insert into t_te(num3) values(0.89)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num3) values(0.089);
1 row inserted

SQL> select num3 from t_te;
NUM3
----
0.08

当数字的精度被定为number(3,-2)时, 这时输入的数字可以是任何一个整数部分小于5(3-(-2))位, 小数部分随意的数字, 但是系统会四舍五入保留百位显示.

SQL> insert into t_te(num4) values(12.3456);
1 row inserted

SQL> insert into t_te(num4) values(122.3456);
1 row inserted

SQL> insert into t_te(num4) values(1222.3456);
1 row inserted

SQL> insert into t_te(num4) values(122234253524.3456);
insert into t_te(num4) values(122234253524.3456)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num4) values(12223.3456);
1 row inserted

SQL> insert into t_te(num4) values(122236.3456);
insert into t_te(num4) values(122236.3456)
ORA-01438: 值大于为此列指定的允许精度

SQL> select num4 from t_te;
NUM4
-----
0
100
1200
12200


当数字的精度被定为number(2,-3)时, 这时能输入的数字只要整数部分不超过5(2-(-3))位, 都不会报错, 小数位会直接被四舍五入. 系统只显示整数部分

SQL> insert into t_te(num5) values(12345);
1 row inserted

SQL> insert into t_te(num5) values(12345723);
insert into t_te(num5) values(12345723)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num5) values(123456);
insert into t_te(num5) values(123456)
ORA-01438: 值大于为此列指定的允许精度

SQL> insert into t_te(num5) values(12345.345678);
1 row inserted

SQL> select num5 from t_te;
NUM5
----
12000
12000

关于number...的精度问题的更多相关文章

  1. 【转】JS中处理Number浮点数精度问题

    https://github.com/dt-fe/number-precision ~(function(root, factory) { if (typeof define === "fu ...

  2. oracle SQL查询number字段精度丢失之解决方法

    解决办法: -- 3.3:表示原始数据 --fm9999999990.0000:表示保留到小数点后4位,若不存在则用0补位. ),'fm9999999990.0000') as demo from d ...

  3. hibernate NUMBER 精度

    通过Hibernate映射实体时会根据数据库中NUMBER类型的精度,生成相应的POJO类中相对应的主键类型.经过亲测结果如下: NUMBER(1) POJO类中生成的是Boolean publicc ...

  4. Oracle类型number与PG类型numeric对比和转换策略

    Oracle 11g number 任意精度数字类型 http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT3 ...

  5. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  6. 非常好的Oracle教程【转】

    http://www.blogjava.net/kiant/articles/234781.html Oracle 笔记(四).SQL 几个要点 附录: 1.SQL 简介 2.SQL 操作符 3.Or ...

  7. ORACLE常见数据类型详解

    1.字符类型 • CHAR:一个定长字符串,当位数不足自动用空格填充来达到其最大长度.如非NULL的CHAR(12)总是包含12字节信息.CHAR字段最多可以存储2,000字节的 信息. • VARC ...

  8. Oracle 常用数据类型(转)

    varchar2(6) 张三 --在jbk中是两个字节,在utm中是三个字节char(6) 张 三 --可以确定长度的用charclob --大存储,没事少用,当多余4000字节时,会用lob来存储, ...

  9. Oracle数据库字段类型说明

    目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型.数字数据类型.日期时间数据类型.大型对象(LOB)数据类型.RAW和LONG RAW数据类型.ROWID和UROWID数据 ...

随机推荐

  1. SpringAOP基础 - 静态代理设计模式

    代理模式在实现过程中,要创建一个接口(社交技巧-接口),代理类(经纪人 - 类)和真实类(范冰冰 - 类)同时实现这个接口. 举个例子: 我们想要找范冰冰吃饭,但是呢,她是大明星,不可能轻易见我们,我 ...

  2. Spring IOC - 控制反转(依赖注入) - 单例和多例

    Spring容器管理的bean在默认情况下是单例的,即一个bean只会创建一个对象,存在map中,之后无论获取多少次该bean,都返回同一个对象. Spring默认采用单例方式,减少了对象的创建,从而 ...

  3. OpenGL 画出雷达动态扫描效果(一)

    最终效果如下所示 Demo下载  http://files.cnblogs.com/xd-jinjian/Debug.zip 源代码下载 http://download.csdn.net/detail ...

  4. delphi WebBrowser的使用方法详解(四)-webbrowser轻松实现自动填表

    webbrowser轻松实现自动填表 步骤如下:  第一步:获取网页 调用Webbrowser 的Navigate系列函数.等待网页装载完成,得到document对象. 在调用 webBrowser. ...

  5. 关于raid5的一系列问题

    前几天我的一个同事在对计划采购的存储进行测试,期间聊到了raid5的话题,我和他的意见产生了分歧.他的说法是raid5不能挂太多盘是因为如果挂太多盘写惩罚会非常严重导致性能下降.而我的观点则是对于ra ...

  6. html 更新

    HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5 ...

  7. extends和implements区别

    extends与implements的不同 1.在类的声明中,通过关键字extends来创建一个类的子类. 一个类通过关键字implements声明自己使用一个或者多个接口. extends 是继承某 ...

  8. python文件操作与字符编码

    知识内容: 1.文件对象与文件处理流程 2.基本操作 3.上下文管理 4.文件的修改与文件内光标的移动 5.字符编码 一.文件对象与文件处理流程 1.文件对象 (1)文件分类 按文件中数据的组织形式可 ...

  9. ORACLE常用数值函数、转换函数、字符串函数介绍

    ORACLE常用数值函数.转换函数.字符串函数介绍. 数值函数: abs(m) m的绝对值 mod(m,n) m被n除后的余数 power(m,n) m的n次方 round(m[,n]) m四舍五入至 ...

  10. JoinableQueue---创建可连接的共享进程队列

    创建可连接的共享进程队列.这就像是一个Queue对象,但队列允许项目的使用者通知生产者项目已经被成功处理. 通知进程是使用共享的信号和条件变量来实现的. from multiprocessing im ...