oracle 保留两位小数

在Oracle数据库中,保留两位小数可以通过多种函数实现,主要包括ROUNDTRUNCTO_CHAR函数。每种函数都有其特定的使用场景和效果。

1. ROUND函数

ROUND函数用于对数值进行四舍五入操作,保留指定的小数位数。其基本语法为:

复制代码
ROUND(number, [decimal_places])
  • number:需要四舍五入的数值。
  • decimal_places:需要保留的小数位数,可选参数,默认为0。

示例

复制代码
SELECT ROUND(123.4567, 2) FROM DUAL; -- 结果为 123.46  
SELECT ROUND(123.45, 2) FROM DUAL;   -- 结果为 123.45  
SELECT ROUND(123, 2) FROM DUAL;      -- 结果为 123.00

注意:如果decimal_places为负数,则表示对整数部分进行四舍五入。

2. TRUNC函数

TRUNC函数用于截断数值到指定的小数位数,不进行四舍五入。其基本语法与ROUND函数类似:

复制代码
TRUNC(number, [decimal_places])

示例

复制代码
SELECT TRUNC(123.4567, 2) FROM DUAL; -- 结果为 123.45  
SELECT TRUNC(123.45, 2) FROM DUAL;   -- 结果为 123.45  
SELECT TRUNC(123, 2) FROM DUAL;      -- 结果为 123.00

3. TO_CHAR函数

TO_CHAR函数是一个格式化函数,可以将数值转换为字符串,并指定返回的格式。通过指定格式,可以实现保留两位小数的效果。其基本语法为:

复制代码
TO_CHAR(number, 'format_mask')
  • number:需要格式化的数值。
  • format_mask:格式化模式,其中FM用于去除尾随的空格,90作为占位符,9表示如果对应位置没有数字则不显示(即显示空格),0表示如果对应位置没有数字则显示0。

示例

复制代码
SELECT TO_CHAR(123.4567, 'FM999999990.00') FROM DUAL; -- 结果为 '123.46'  
SELECT TO_CHAR(123.45, 'FM999999990.00') FROM DUAL;   -- 结果为 '123.45'  
SELECT TO_CHAR(123, 'FM999999990.00') FROM DUAL;      -- 结果为 '123.00'

注意:在使用TO_CHAR函数时,如果格式模式中的小数位数大于原数值的小数位数,且小数位为0,则结果会用0来填充;如果小数位为9,则不填充(即显示空格,但FM会去除这些空格)。

总结

在Oracle中保留两位小数,可以根据实际需求选择ROUNDTRUNCTO_CHAR函数。ROUND函数适用于需要四舍五入的情况,TRUNC函数适用于需要直接截断的情况,而TO_CHAR函数则提供了更灵活的格式化选项。

相关推荐
毕设十刻20 小时前
基于Vue的迅读网上书城22f4d(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
薛定谔的猫198220 小时前
Langchain(十二)LangGraph 实战入门:用流程图思维构建 LLM 工作流
数据库·microsoft
坐吃山猪21 小时前
ChromaDB02-代码实战
数据库·向量数据库·chromadb
摇滚侠21 小时前
MySQL 中 utf8mb4 字符集,字母a占几个字节,一个汉字占几个字节 / MySQL 中 utf8mb3 字符集,字母a占几个字节,一个汉字占几个字节
数据库·mysql
ChineHe21 小时前
Redis数据类型篇001_数据类型梳理与选择指南
数据库·redis·缓存
Antoine-zxt21 小时前
MySQL CPU飙升至500%的深度排查与优化实践
数据库·mysql
Awkwardx21 小时前
MySQL数据库—MySQL基本查询
数据库·mysql
夜流冰21 小时前
Excel - MS Support for Excel: 2 Collaborate
数据库·windows·excel
轻微的风格艾丝凡21 小时前
嵌入式定时器计时技巧:用有符号数省略溢出判断的底层逻辑与实践
数据库·算法·dsp开发·嵌入式软件
Lonely丶墨轩1 天前
从登录入口窥见架构:一个企业级双Token认证系统的深度拆解
java·数据库·sql