oracle中数据类型number(m,n)
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位向右的数字被舍入
oracle中数据类型number(m,n)的更多相关文章
- oracle表数据类型number对应java中BIgDecimal转int
oracle中id为number类型,在java获取id时用getBigDecimal 相匹配, 如果想转换成int,重写model中的getInt方法: public Integer getInt( ...
- oracle中的number类型
number 数据类型 number (precision,scale) a) precision表示数字中的有效位,如果没有指定precision的话,oracle将使用38作为精度: b) ...
- oracle中数据类型对应java类型
地址: http://otndnld.Oracle.co.jp/document/products/oracle10g/102/doc_cd/Java.102/B19275-03/datacc.htm ...
- C#中rpt的数据类型和Oracle中数据类型的匹配
Oracle中number数据类型对应C#中decimal数据类型,结果是整数 Oracle中number数据类型对应C#中int32数据类型,结果是小数,保留两位小数 Oracle中中date类型数 ...
- 关于oracle中数据类型的选择
由于是初学,犯了如下错误: 生成表的主键id时,用当前时间的毫秒值.而在oracle中定义主键id时,用的数据类型是char(32).在mybatis中通过id取数据怎么也取不出来.想了好几天,本来以 ...
- Oracle中对number类型数据to_char()出现各位少0,或者值为###的处理
问题描述: 在Oracle中使用to_char()函数时当number值为小数时,常常个位0不显示 比如:select to_char(0.02) from dual,结果为.02 改进为 selec ...
- oracle中number对应java数据类型
本文转自:http://blog.csdn.net/ludongshun2016/article/details/71453125 数据库中为number类型的字段,在Java类型中对应的有Integ ...
- Oracle中varchar,varchar2,nvarchar,nvarchar2的区别及其它数据类型描述
--varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个 ...
- Oracle中PL/SQL简介、基本语法以及数据类型
Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...
随机推荐
- UC浏览器 - 不负责任思考
前言 UC浏览器的辉煌应该是我读大学(2008年)的时候,转眼间,十年过去了,庆幸的是UC还在,我从使用者变成了一名UC的员工. 以下都是个人的不负责任的猜想或者思考 变更 塞班时代 UC浏览器的地位 ...
- SignalR2简易数据看板演示
软件环境: 1.vs2015.windows7..net4.5 演示说明: 当点击按钮的时候,柱状图数值加1并实时变化 1.首先打开vs2015创建一个mvc项目,并安装SignalR2,具体操作可参 ...
- matplotlib可视化之如何给图形添加数据标签?
当我们获取完数据之后,一般来说数据可视化呈现的最基础图形就是:柱状图.水平条形图.折线图等等,在python的matplotlib库中分别可用bar.barh.plot函数来构建它们,再使用xtick ...
- spring cloud学习(二) 调用服务
spring-cloud调用服务有两种方式,一种是Ribbon+RestTemplate, 另外一种是Feign. Ribbon是一个基于HTTP和TCP客户端的负载均衡器,其实feign也使用了ri ...
- Fusioncharts的数字格式化
1. 小数点位数格式化 <chart ... decimals='2' > Eg.数值12.432, 13.4 and 13,使用<chart ... decimals= ...
- Swift 里 Set (三)Inspecting a Set
isEmpty /// A Boolean value that indicates whether the set is empty. @inlinable public var isEmpty: ...
- python 多版本管理pyenv和virtualenv虚拟开发环境
pyenv是管理多个python版本的工具. 1.pyenv的安装 git clone https://github.com/yyuu/pyenv.git ~/.pyenv 2.将PYENV_ROOT ...
- 基于iview的后台管理
年前由于时间紧迫,原本使用iview技术开发后台管理系统的大神另有任务,我中途接手该项目,此前对于iview一无所知的我是一脸的懵逼,好在后台管理的整体框架大神已经搭建好了,而我之前对vue也有一定的 ...
- async await 的执行
async await的执行 注意:本次代码仅在 Chrome 73 下进行测试. start 不了解 async await 的,先去看阮一峰老师的文章async 函数. 先来看一道头条的面试题,这 ...
- 【并发】2、AtomicReferenceFieldUpdater初体验
对于volatile对象的原子更新 AtomicReferenceFieldUpdater这个对象进行原子更新的时候,外部操作对象只能是public,因为外部访问不到private对象,但是在内内部确 ...