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的整数。

参考技术A

NUMBER类型详细介绍:


在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表示整数。 

参考技术B

Number类型的用法

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)是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

在oracle中number类型的字段长度是啥意思

oracle数据库中的整型是啥

Oracle NUMBER 数据类型中的精度和小数位数是啥意思

oracle数据库中NUMBER(2)这个2是啥意思

Oracle中的数字(5)在C#中是啥意思

flash as3.0中的arguments是啥意思