• Oracle NUMBER 当p和s都被省略,则当前可表示的数据为浮点型,可以存储正负数、零值、浮点数等


    NUMBER数据类型在Oracle中使用的较为广泛,可以存储零值,正负数,以及定长数,对于这个数据类型有个几个概念要搞清,否则容易搞混,下面给出具体描述。

    1、可表示范围及存储空间
        从1.0 x 10-130 到 1.0 x 10126(不包括),如果表达式或值大于1.0 x 10126,Oracle会返回错误信息
        所需的存储空间为1到22个字节
     
    2、Number类型表示法
        NUMBER(p,s)   P 和S 可选

        其中precision表示数字的总长度,scale代表可以有几位小数。
        precision也叫精度,是指数中的总数字个数,默认情况下,精度为38 位,取值范围是1~38 之间。
        scale是小数位数,即数中小数点右边的数字个数。其范围从-84到127,能够决定舍入规则。如果我们不指定scale的值,默认就为0。
        不可以用常量或变量指定NUMBER的长度和精度。NUMBER类型最大的长度是38位。
        如果不指定NUMBER类型的最大长度,就会采用默认长度或是使用系统所支持的最大长度。
        精度和小数位数不会影响数据在磁盘上如何存储,而只会影响允许有哪些值以及数值如何舍入(round)。

        例如,数 123.45 的精度是 5,小数位数是 2。
      
        下面对p和s进行分析
        p>0,对s分2种情况分析:
      
      a. s>0
        精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。
      
      b. s<0
        精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+|s|
      
        (有效数位:从左边第一个不为0的数算起)
      
        对于浮点数则不考虑精度问题
      
      c、表示整数
        当s的值被省略时,即等同于s等于0,表示整数
      
        NUMBER(p) 等同于NUMBER(p,0)
      
      c、浮点型
        当p和s都被省略,则当前可表示的数据为浮点型,可以存储正负数、零值、浮点数等
        示例:
        Value       Datatype       Stored Value
        123.2564    NUMBER         123.2564
        1234.9876   NUMBER(6,2)    1234.99              
        12345.12345 NUMBER(6,2)    Error                
        1234.9876   NUMBER(6)      1235                 
        12345.345   NUMBER(5,-2)   12300                
        1234567     NUMBER(5,-2)   1234600              
        12345678    NUMBER(5,-2)   Error                
        123456789   NUMBER(5,-4)   123460000            
        1234567890  NUMBER(5,-4)   Error                
        12345.58    NUMBER(*, 1)   12345.6              
        0.1         NUMBER(4,5)    Error                
        0.01234567  NUMBER(4,5)    0.01235              
        0.09999     NUMBER(4,5)    0.09999              
        0.099996    NUMBER(4,5)    Error
    ————————————————
    版权声明:本文为CSDN博主「Leshami」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/robinson_0612/java/article/details/8153826

  • 相关阅读:
    hisi3516/3519开发(二)—xshell连接串口
    linux svn使用
    IdentityServer4 源码介绍
    想写博客
    # VS2019 快捷键插入当前时间
    # 使用 vscode markdown 遇到的问题
    # 学Vue
    teXt使用
    Linux基础
    NopCommerce(Core)学习目录
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/12674423.html
Copyright © 2020-2023  润新知