在开发中经常会去进行一些计算,遇到除法经常会遇到除不尽的情况,当然各个公司要求不同,处理方式不一样,所要求精度也不一样。整理下oracle自带保留两位小数常用函数:

1 ROUND( number, [ decimal_plaes ] )

ROUND()函数是四舍五入的方法,即传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。number 用于指定取整精度的数字;decimal_plaes 需要保留的小数位数,默认值为 0。

使用:SELECT ROUND( number, [ decimal_places ] ) FROM TABLE_NAME;
注意:

1. 第一个参数必须是number,且必填;

2. 参数 decimal_places 是指在进行四舍五入运算时 , 小数的应取的位数,该参数可以不填,不填的时候,系统默认小数位数取0;

3. ROUND()函数并不会占位,小数为零则清空(有时为了数据展示的统一性,需要小数位为两位,则单此函数无法满足);

4. ROUND( number, [ decimal_places ] ),第一个参数可以为表达式。例如: select round(123.0120/1,4) num1 from dual。

TRUNC( number, [ decimal_plaes ] )

TRUNC( number, [ decimal_plaes ] )不会将number进行四舍五入;number用于指定取整精度的数字;decimal_plaes 需要保留的小数位数,默认值为 0。

使用:SELECT TRUNC( number, [ decimal_places ] ) FROM TABLE_NAME;

注意:

1. 第一个参数必须是number,且必填;

2. 参数 decimal_places 是指在进行四舍五入运算时 , 小数的应取的位数,该参数可以不填,不填的时候,系统默认小数位数取0;

3. TRUNC()函数并不会占位,小数为零则清空(有时为了数据展示的统一性,需要小数位为两位,则单此函数无法满足);

4. TRUNC( number, [ decimal_places ] ),第一个参数可以为表达式。例如: select  TRUNC(123.0120/1,4) num1 from dual;

5.trunc()函数也可以对日期进行操作。(摘录这篇博客: Oracle trunc()函数的用法)

select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-06
select trunc(sysdate, 'mm') from dual --2013-01-01 返回当月第一天.
select trunc(sysdate,'yy') from dual --2013-01-01 返回当年第一天
select trunc(sysdate,'dd') from dual --2013-01-06 返回当前年月日
select trunc(sysdate,'yyyy') from dual --2013-01-01 返回当年第一天
select trunc(sysdate,'d') from dual --2013-01-06 (星期天)返回当前星期的第一天
select trunc(sysdate, 'hh') from dual --2013-01-06 17:00:00 当前时间为17:35
select trunc(sysdate, 'mi') from dual --2013-01-06 17:35:00 TRUNC()函数没有秒的精确

3 TO_CHAR( number, ‘格式’ )

TO_CHAR()是一个格式化函数,可以对数值进行四舍五入操作,并指定返回格式。number用于指定取整精度的数字;第二个参数是指定格式化的格式。

使用:select to_char(参数,'FM990.00') from TABLE_NAME

注意:

1. 第一个参数必须是number,且必填;

2. 第二个参数不填的时候,系统默认取当前数值;

3. to_char()函数会进行占位,不过占位是通过‘0’,‘9’进行。

  • 0表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示0
  • 9表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示空格
  • FM表示:将9带来的空格删除

如下事例:

num1:如果只有一个参数,则默认为当前值;

num2:如果没有FM,则会根据格式,将99转化为“ ”(空格);

num3:被格式化数字小数位值为.000,格式化取格式类型末尾为9,则取最后一个零所在位;

num4:被格式化数字小数位值为.000,格式化取格式类型末尾为0,则取补充被格式化数字为末尾0所在位数;

num5:和num3相似,格式类型小数位为9,格式类型小数位没有0,则取格式化数字后不为零小数位;

num6:特殊说明,格式类型小数位为9,被格式化话数字格式化后值小数位没有非0数值,则不会展示小数位(需要注意此种情况);

num7:与num6相似,整数依旧如此,需要注意;

num8:格式化类型个位格式类型为0,则可避免num7出现情况

num9:与num4相似,整数位最高位格式类型为0,则被格式化数字需要补充位数至格式类型0所在最高位。

如果保留两位小数则小数点后写两个99,这里的数字9代表的数字,也是一个占位符,表示该位置上以后会是一个数字,为什么小数点前面会是一个0,而不是9,是因为如果计算结果小于1,那么只会显示小数点和小数点之后的部分,前面的0会忽略掉

4. 格式化字符必须长度必须大于被格式化字符长度,否则会输出“######”。

select TO_CHAR(123.0160) num1,TO_CHAR(123.0160,'999999990.00') num2,TO_CHAR(123.1000,'FM999999990.0099') num3,TO_CHAR(123.1000,'FM999999990.09900') num4,TO_CHAR(123.1000,'FM999999990.99') num5,TO_CHAR(123.0000,'FM999999990.99') num6,TO_CHAR(000.1000,'FM999999999.99') num7,TO_CHAR(000.1000,'FM999999990.990') num8,TO_CHAR(123.0160,'FM0999999990.990') num9from dual;select TO_CHAR(012345678910.00/1,'FM0999999990.990')numb from dual;

5. TO_CHAR() 函数也可对日期进行格式化;

oracle字符串类型的时间常用操作;

select to_char(sysdate,’yyyy-MM-dd HH24:mi:ss’) from dual;//mi是分钟
select to_char(sysdate,’yyyy-MM-dd HH24:mm:ss’) from dual;//mm会显示月份

6. TO_CHAR()其他格式化类型。摘录:Oracle中关于to_date(),to_char(),to_number()函数的用法

to_char(-0.1,’99.99’) ’ -.10’
to_char(-0.1,’FM9.99’) ‘-.1’
to_char(0.1,’0.9’) ’ 0.1’
to_char(12,’9990999.9’) ’ 0012.0’
to_char(12,’FM9990999.9’) ‘0012’
to_char(485,’999’) ’ 485’
to_char(-485,’999’) ‘-485’
to_char(485,’9 9 9’) ’ 4 8 5’
to_char(1485,’9,999’) ’ 1,485’
to_char(1485,’9G999’) ’ 1 485’
to_char(148.5,’999.999’) ’ 148.500’
to_char(148.5,’999D999’) ’ 148,500’
to_char(3148.5,’9G999D999’) ’ 3 148,500’
to_char(-485,’999S’) ‘485-’
to_char(-485,’999MI’) ‘485-’
to_char(485,’999MI’) ‘485’
to_char(485,’PL999’) ‘+485’
to_char(485,’SG999’) ‘+485’
to_char(-485,’SG999’) ‘-485’
to_char(-485,’9SG99’) ‘4-85’
to_char(-485,’999PR’) ‘<485>’
to_char(485,’L999’) ‘DM 485
to_char(485,’RN’) ’ CDLXXXV’
to_char(485,’FMRN’) ‘CDLXXXV’
to_char(5.2,’FMRN’) V
to_char(482,’999th’) ’ 482nd’
to_char(485, ‘“Good number:”999’) ‘Good number: 485’
to_char(485.8,‘“Pre-decimal:”999” Post-decimal:” .999’) ‘Pre-decimal: 485 Post-decimal: .800’
to_char(12,’99V999’) ’ 12000’
to_char(12.4,’99V999’) ’ 12400’
to_char(12.45, ‘99V9’) ’ 125’

oracle 数据保留两位小数(祥解ROUND()TRUNC(),TO_CHAR( number, ‘格式’ )函数)相关推荐

  1. Bigdecimal BigDeciamal元转换为万元,转换为百分数,字符串与数值互转,整数/浮点数转换为BigDeciamal 获取当前年月日时分秒 百分比数据保留两位小数

    bigdecimal 详细说明 1 JAVA中 去除BigDecimal末尾多余的0 方法1(重要) 去除 BigDecimal 数值尾数多余的0 方法2(理解) 自定义一种方法 2.1 JAVA中 ...

  2. Java中让浮点型数据保留两位小数的四种方法

    hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 今天在进行开发的过程中遇到了一个小问题,是关于如何将double类型的数据保留两位小数.突然发现这方面有一点欠缺,就来总结一下. 一.Str ...

  3. Oracle中保留两位小数

    一.ROUND(A/B,2) 函数 ROUND()函数是会将计算结果进行四舍五入的,如果所需要的值需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数:如果有两个param,第一个是 ...

  4. Oracle 保留两位小数详解

    文章目录 1 概述 2 示例 1 概述 #mermaid-svg-LiK7qdn2UTmJIUjS .label{font-family:'trebuchet ms', verdana, arial; ...

  5. oracle:sql保留两位小数方法

    1.select cast(362315*1.0/10000 as numeric(18,2)) 2.select convert(decimal(18, 2), 362315 * 1.0 / 100 ...

  6. mongodb针对查询数据保留两位小数或者自定义

    1.实现原理,根据字符串截取实现 db.collection.aggregate([{$project : {field : "123.4569999999"}}, // 自定义数 ...

  7. Oracle CASE WHEN 使用及保留两位小数

    1.Oracle CASE WHEN 用法介绍 Oracle CASE WHEN 用法介绍 - eshizhan - 博客园 --简单Case函数 CASE sexWHEN '1' THEN '男'W ...

  8. 微信小程序 —— 保留两位小数

    以下所述参考网上众多大佬略写,本人只是菜鸟一枚,记录博客主要怕自己记不住,方便以后参考,有何不足,欢迎补充- 方式方法和网上大多大佬有雷同,因为我也是参考网上各位大佬的- 两种方法 一: 在 util ...

  9. java注解保留两位小数_jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    一. 问题 最近开发中使用BigDecimal这个数据类型 返回json数据时出现了点问题: # 1.前端第一次保存的时候 穿过来的数据格式 240.00 240.77 # 2. mysql数据库存储 ...

最新文章

  1. Activiti 规则任务(businessRuleTask)
  2. SparkSQL ThriftServer 安全相关功能的现状分析
  3. 安装JAVA 运行环境
  4. 程序员与「中台」的爱恨交错
  5. 直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例
  6. 【Python】科赫雪花绘制
  7. 数据结构Java版之基数排序(四)
  8. 中根遍历二叉查找树所得序列一定是有序序列_数据结构考研学习笔记(九)树、森林...
  9. freemarker中使用@spring.*标签实现国际化
  10. ImageLoader简单分析(三)
  11. 老程序员应该记住的 5 件事
  12. PPT 图表不显示对应类型的数据解决办法
  13. JAVA.犹抱琵琶半遮面
  14. python怎么算积分_蒙特卡洛方法求定积分及python实现(转)
  15. Chrome浏览器视频网站全屏黑屏解决方法
  16. 摄像头 - 屏幕刷新率(Hz)与帧率(fps)的区别与关系
  17. Bond随你入坑kubernetes之:入门篇 - 搭建多节点集群+Dashboard+监控
  18. Coursera机器学习第三周Regularization练习题
  19. gzp解压命令 linux_Linux gzip命令:压缩文件或目录
  20. SEO快排系统功能更新

热门文章

  1. Bugku bugku导航 writeup
  2. 三种搭建网站的方法(基于域名,IP,端口)
  3. python学习笔记9:SQLite Expert Professional软件的安装
  4. 手机定位在生活中发挥的作用
  5. 2013年软件工程c语言,《C语言程序设计》实验报告模板_2013级软件工程.doc
  6. 推荐几款实用的软件给你
  7. 人体一机竞技格斗机器人_发布“人机一体”消费级竞技格斗机器人,工匠社将围绕产品打造“赛事+IP”战略...
  8. 小美果园农场种树软件引流小游戏
  9. 试论如何提高801.11协议的网络质量?
  10. window系统安装淘宝镜像(cnpm)