oracle 保留两位小数

立山  论坛元老 | 2024-9-17 14:29:47 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1023|帖子 1023|积分 3069

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在Oracle数据库中,保留两位小数可以通过多种函数实现,重要包括ROUND、TRUNC和TO_CHAR函数。每种函数都有其特定的使用场景和效果。
1. ROUND函数

ROUND函数用于对数值进行四舍五入操作,保留指定的小数位数。其根本语法为:
  1. ROUND(number, [decimal_places])
复制代码


  • number:必要四舍五入的数值。
  • decimal_places:必要保留的小数位数,可选参数,默以为0。
示例
  1. SELECT ROUND(123.4567, 2) FROM DUAL; -- 结果为 123.46  
  2. SELECT ROUND(123.45, 2) FROM DUAL;   -- 结果为 123.45  
  3. SELECT ROUND(123, 2) FROM DUAL;      -- 结果为 123.00
复制代码
注意:如果decimal_places为负数,则表现对整数部门进行四舍五入。
2. TRUNC函数

TRUNC函数用于截断数值到指定的小数位数,不进行四舍五入。其根本语法与ROUND函数类似:
  1. TRUNC(number, [decimal_places])
复制代码
示例
  1. SELECT TRUNC(123.4567, 2) FROM DUAL; -- 结果为 123.45  
  2. SELECT TRUNC(123.45, 2) FROM DUAL;   -- 结果为 123.45  
  3. SELECT TRUNC(123, 2) FROM DUAL;      -- 结果为 123.00
复制代码
3. TO_CHAR函数

TO_CHAR函数是一个格式化函数,可以将数值转换为字符串,并指定返回的格式。通过指定格式,可以实现保留两位小数的效果。其根本语法为:
  1. TO_CHAR(number, 'format_mask')
复制代码


  • number:必要格式化的数值。
  • format_mask:格式化模式,此中FM用于去除尾随的空格,9和0作为占位符,9表现如果对应位置没有数字则不表现(即表现空格),0表现如果对应位置没有数字则表现0。
示例
  1. SELECT TO_CHAR(123.4567, 'FM999999990.00') FROM DUAL; -- 结果为 '123.46'  
  2. SELECT TO_CHAR(123.45, 'FM999999990.00') FROM DUAL;   -- 结果为 '123.45'  
  3. SELECT TO_CHAR(123, 'FM999999990.00') FROM DUAL;      -- 结果为 '123.00'
复制代码
注意:在使用TO_CHAR函数时,如果格式模式中的小数位数大于原数值的小数位数,且小数位为0,则结果会用0来填充;如果小数位为9,则不填充(即表现空格,但FM会去除这些空格)。
总结

在Oracle中保留两位小数,可以根据实际需求选择ROUND、TRUNC或TO_CHAR函数。ROUND函数实用于必要四舍五入的环境,TRUNC函数实用于必要直接截断的环境,而TO_CHAR函数则提供了更机动的格式化选项。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立山

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表