将数字格式化为两位小数 - Oracle

Posted

技术标签:

【中文标题】将数字格式化为两位小数 - Oracle【英文标题】:Format number into two decimal places - Oracle 【发布时间】:2021-08-18 21:26:41 【问题描述】:

格式 21000 到 210.00 或 21123转211.23

我试过了 从对偶中选择 to_char(21000,'999.99'); 但结果是#####。

我也试过 select to_char(21000,'99999.99') from dual; 但它会将数字格式化为 21000.00

【问题讨论】:

您的意思是“将 21000 格式化为十进制数 210,表示为字符串 210.00”(带两位小数)?这不仅仅是一个“格式化”问题——你实际上是在除以 100。在“格式化”中,你不会改变值,只是改变它的显示方式。还是您的意思是“将数字 21000 显示为 210.00,其中点是组分隔符 - 数字仍然是整数 21000”?在那种情况下,你为什么指的是“小数位”?无论哪种方式,您都应该澄清。到目前为止,一位响应者假设了两个答案之一,但我不能 100% 确定这就是你的意思。 【参考方案1】:

你需要除以 100:

SELECT value,
       TO_CHAR(value / 100, 'FM990.00') AS formatted_value
FROM   table_name;

其中,对于样本数据:

CREATE TABLE table_name ( value ) AS
SELECT 21000 FROM DUAL UNION ALL
SELECT 21123 FROM DUAL;

输出:

VALUE FORMATTED_VALUE
21000 210.00
21123 211.23

db小提琴here

【讨论】:

以上是关于将数字格式化为两位小数 - Oracle的主要内容,如果未能解决你的问题,请参考以下文章

使用python以两位小数格式化excel数字

无法将给定对象格式化为数字组合框

PHP number_format():将数字四舍五入,然后格式化为货币

Java 数字格式

用正确的小数位格式化数字

数字的处理方法(保留小数点两位将数字转化为千分位格式)