NUMBER(precision, scale)类型
NUMBER类型是一种变长的数据类型,占0~22字节存储空间(1个字节存储数据长度,1个字节存储符号和指数,20个字节存储数据)。
precision是NUMBER可存储的最大有效位数,scale是小数点右边的最大数字长度。
precision范围:1-38,默认38。
scale范围:-84~127。
scale>0 精确到小数点右边s位,四舍五入。然后检验有效位是否<=p。
scale<0 精确到小数点左边s位,四舍五入。然后检验有效位是否<=p + |s|。
scale=0 表示整数。
优点:较好的数据精确度、通用性强、可移植性强。
缺点:运算效率相对浮点类型偏低。
FLOAT(binary precision)
FLOAT类型是NUMBER类型的子类型,binary precision是二进制有效位数,scale不可自定义。
其中,binary precision范围是1~126。转十进制需要(乘以 0.30103),即1~38。
【示例】
float(1)
转十进制有效位数:decimal precision = ( 1*0.30103 )=0.30103,永远取上整数,则decimal precision = 1。
若数据为23.8,插入数据库变为20。