oracle中数据类型number(m,n)中m表示的是所有有效数字的位数,n表示的是小数位的位数。m的范围是1-38,即最大38位。

1> .NUMBER类型细讲:
Oracle   number   datatype   语法:NUMBER[(precision   [, scale])]
简称:precision   -->   p 
          scale   -->   s

NUMBER(p,   s)
范围:   1   <=   p   <= 38,

-84   <=   s   <= 127
        保存数据范围: -1.0e-130   <= number value  <   1.0e+126        
保存在机器内部的范围:   1   ~   22   bytes

有效位:从左边第一个不为0的数算起的位数。
s的情况:
s   >   0
      精确到小数点右边s位,并四舍五入。然后检验有效位是否   <=   p。
s   <   0
      精确到小数点左边s位,并四舍五入。然后检验有效位是否   <=   p   +   |s|。
s   =   0
      此时NUMBER表示整数。

eg:
Actual   Data       Specified   As     Stored   As
----------------------------------------
123.89                       NUMBER            123.89
123.89                       NUMBER(3)           124
123.89                       NUMBER(6,2)       123.89
123.89                       NUMBER(6,1)       123.9
123.89                       NUMBER(4,2)       exceeds   precision   (有效位为5,   5   >   4)
123.89                       NUMBER(6,-2)     100
.01234                       NUMBER(4,5)       .01234   (有效位为4)
.00012                       NUMBER(4,5)       .00012
.000127                      NUMBER(4,5)       .00013
.0000012                     NUMBER(2,7)       .0000012
.00000123                    NUMBER(2,7)       .0000012
1.2e-4                       NUMBER(2,5)       0.00012
1.2e-5                       NUMBER(2,5)       0.00001
123.2564                     NUMBER                 123.2564
1234.9876                    NUMBER(6,2)       1234.99
12345.12345                  NUMBER(6,2)       Error   (有效位为5+2   >   6)
1234.9876                    NUMBER(6)           1235   (s没有表示s=0)
12345.345                    NUMBER(5,-2)     12300
1234567                      NUMBER(5,-2)     1234600
12345678                     NUMBER(5,-2)     Error   (有效位为8   >   7)
123456789                    NUMBER(5,-4)     123460000
1234567890                   NUMBER(5,-4)     Error   (有效位为10   >   9)
12345.58                     NUMBER(*,   1)     12345.6
0.1                          NUMBER(4,5)       Error   (0.10000,   有效位为5  >   4)
0.01234567                   NUMBER(4,5)       0.01235
0.09999                      NUMBER(4,5)       0.09999

----------

在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在
  1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0}
的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。
Number的数据声明如下:
表示        作用        说明
Number(p, s)        声明一个定点数        p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127
Number(p)        声明一个整数        相当于Number(p, 0)
Number        声明一个浮点数        其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。

定点数的精度(p)和刻度(s)遵循以下规则:
        当一个数的整数部分的长度 > p-s 时,Oracle就会报错
        当一个数的小数部分的长度 > s 时,Oracle就会舍入。
        当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。
        当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入

最新文章

  1. RTSP协议转换RTMP直播协议
  2. Maximo7自定义实现WebService
  3. tomcat并发
  4. GridView中DropDownList
  5. 无线安全专题01--kali破解WPA
  6. B2B多商铺初期权限数据库设计
  7. WinForm窗体拖动代码
  8. Linux课本第一二章
  9. ural 1106. Two Teams 二分图染色
  10. power desinger 学习笔记&lt;六&gt;
  11. HDU_2031——十进制转换成R进制
  12. 前端开发利器—FIDDLER 转
  13. With As 获取 id parentId 递归获取所有
  14. MapReduce中Combiner规约的作用以及不能作为MR标配的原因
  15. bzoj 3295: [Cqoi2011]动态逆序对(树套树 or CDQ分治)
  16. nginx 的编译参数详解
  17. 2018-02-24 项目/教程中使用母语命名的&quot;问题&quot;
  18. Java8 新特性 | 如何风骚走位防止空指针异常
  19. linux 查看CPU、内存、磁盘信息命令
  20. 使用redis作为Return存储方式

热门文章

  1. .net core中Quartz的使用
  2. 最值得拥有的免费Bootstrap后台管理模板
  3. Spring AOP 源码分析系列文章导读
  4. 【文文殿下】WC2019游记
  5. es6新增Math方法
  6. maven搭建ssm初级框架
  7. oracle RAC 跨网段客户端访问 报ORA-12170
  8. GCC C语言 DLL范例,含源码
  9. office2013安装与卸载
  10. ElasticSearch 6.x 父子文档[join]分析