将数字格式化为两位小数 - 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的主要内容,如果未能解决你的问题,请参考以下文章