0

0

Oracle中的decimal与Number区别

php中文网

php中文网

发布时间:2016-06-07 17:28:11

|

3047人浏览过

|

来源于php中文网

原创

Oracle只是在语法上支持decimal类型,但是在底层实际上它就是number类型,支持decimal类型是为了能把数据从Oracle数据库移到其他

一、decimal类型详细

Oracle只是在语法上支持decimal类型,但是在底层实际上它就是number类型,支持decimal类型是为了能把数据从Oracle数据库移到其他数据库中(如DB2等)。

 因为decimal在Oracle底层就是number类型,所以就当number类型使用就可以了,如果需要对这种字段类型转为char类型可以用to_char函数对其转换。

decimal类型从根本上说应该是数字类型的,因为oracle内部的数据类型,对于数字只有number类型,都当数字类型进行处理即可。decimal(8,2)代表数字总共8位长度,小数部分是2位。范围是8位,精确到小数点后2位,并四舍五入,即存6位整数,两位小数。也就是最大值可以是999999.99,可存放2位小数。Oracle中,可以使用to_char函数对数字进行转换,使它变成字符类型.

二、NUMBER类型详细

在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位向右的数字被舍入.
 
NUMBER类型细讲
 
Oracle number datatype 语法:NUMBER[(precision [, scale])]
 简称:precision --> p
      scale    --> s
 
NUMBER(p, s)
 范围:1  保存数据范围:-1.0e-130  保存在机器内部的范围:1 ~ 22 bytes
 
有效位:从左边第一个不为0的数算起的位数。
 s的情况:
 s > 0
    精确到小数点右边s位,并四舍五入。然后检验有效位是否 s     精确到小数点左边s位,并四舍五入。然后检验有效位是否 s = 0
    此时NUMBER表示整数。

eg:
 Actual Data  Specified As  Stored As
 ----------------------------------------
 123.89          NUMBER        123.89
 123.89          NUMBER(3)    124124
 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

linux

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.2万人学习

Java 教程
Java 教程

共578课时 | 40万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号