Oracle中的number(10,0)是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中的number(10,0)是啥意思相关的知识,希望对你有一定的参考价值。
他的取值范围是多少
意思是:Number(p)是声明一个整数,最多有10位有效数字,1位小数。
number(4,3)是表示这个数一共有4位是有效位,后面的3表示有3个是小数也就是这个数只能是1.234,这样格式的最大只能是9.999。
number(3,4)表示这个数有效位数是3位但是有四位小数也就是只能是这个格式0.0123最大只能是0.0999。
扩展资料
Number类型的用法
p(precision)为精度,精度最大值为38;
s(scale)表示小数点右边的数字个数,scale的取值范围为-84到127;
因此,Number(p)即是声明一个整数,相当于Number(p,0),即等同于int型;
例子:
Number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全;
Number(8)存储总长度为8的整数。
参考技术ANUMBER类型详细介绍:
在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在
1.0 * 10(-130) —— 9.9...9 * 10(125) 38个9后边带88个0
的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。
Number的数据声明如下:
定点数的精度(p)和刻度(s)遵循以下规则:
当一个数的整数部分的长度> p-s 时,Oracle就会报错
当一个数的小数部分的长度> s 时,Oracle就会舍入。
当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。
当s > p时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入.
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表示整数。
参考技术BNumber类型的用法
Number表示说明:Number(p, s) ——声明一个定点数
其中p(precision)为精度,精度最大值为38
s(scale)表示小数点右边的数字个数,scale的取值范围为-84到127
因此,Number(p) 即是声明一个整数,相当于Number(p, 0),即等同于int型
例子:
Number(8,1) 存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全;
Number(8) 存储总长度为8的整数
定点数的精度(p)和刻度(s)遵循以下规则:
当一个数的整数部分的长度 > p-s 时,Oracle就会报错
例:12345.12345 NUMBER(6,2) Error
当一个数的小数部分的长度 > s 时,Oracle就会舍入
例:12345.58 NUMBER(*, 1) 12345.6
当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入
例:12345.345 NUMBER(5,-2) 12300
Number与int,float等数据类型的区别
oracle本没有int类型,为了与别的数据库兼容,新增了int类型作为Number类型的子集。
1、int类型只能存储整数;
2、Number可以存储浮点数,也可以存储整数;
转自: 博客
参考技术C 第一个参数代表长度,第二个代表精度,number(10,0)代表长度为10的整数。 参考技术D 10位长整数。10是精度,0是小数位数本回答被提问者采纳
Oracle NUMBER 数据类型中的精度和小数位数是啥意思
【中文标题】Oracle NUMBER 数据类型中的精度和小数位数是啥意思【英文标题】:What does precision and scale means in the Oracle NUMBER data typeOracle NUMBER 数据类型中的精度和小数位数是什么意思 【发布时间】:2012-05-26 13:31:59 【问题描述】:我一直在阅读 Oracle DB 初学者指南。精度和规模的定义相当混乱。 书上说:
number(6,3)
Oracle allows for 2 not 6 significant digitalis.
我的问题是,6 表示精度。这意味着有效数字的数量。所以它应该接受 6 位有效数字。为什么书上说是2位有效数字
我指的书是Oracle Database 11g A Beginner's Guide by McGraw Hill Professional, Dec 18, 2008,第12页
【问题讨论】:
【参考方案1】:查看在线Oracledoc:
p 是精度,或最大有效小数位数 数字,其中最重要的数字是最左边的非零 位,最低有效位是最右边的已知数字。 Oracle 保证数字的可移植性,精度高达 20 个 base-100 数字,相当于 39 或 40 个十进制数字 取决于小数点的位置。
s 是小数位数,或从小数点到小数点的位数 最低有效位。范围可以从 -84 到 127。
正数是右边的有效位数 小数点到并包括最低有效数字。
负数是左边的有效位数 小数点,但不包括最低有效位。为了 负刻度最低有效位在左侧 小数点,因为实际数据是四舍五入到指定的 小数点左边的位数。例如,一个 (10,-2) 的规格意味着四舍五入到数百。
【讨论】:
以上是关于Oracle中的number(10,0)是啥意思的主要内容,如果未能解决你的问题,请参考以下文章