You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中TO_CHAR格式化小数位数:整数无法显示末尾零的问题

Oracle中TO_CHAR格式化数字保留两位小数的正确方式

你遇到的问题是因为FM修饰符结合.99格式符时,会去掉小数部分末尾的零但保留小数点。要实现整数显示为1800.00、小数保持原有两位的效果,不需要用条件函数,直接调整格式符即可:

将格式符从'FM99990.99'改为'FM9999999990.00'(前面的9可以多写几个,适配不同长度的整数)。

修改后的SQL语句

SELECT   to_char(B.TRANSACTION_COST,'FM9999999990.00') TRANSACTION_COST
        ,B.TRANSACTION_COST TRANS_COST_ORIGINAL
  FROM CST_ONHAND_V A,
       CST_ITEM_COST_HISTORY_V B

效果说明

  • 整数1800会输出1800.00
  • 小数123.45会输出123.45
  • 一位小数123.4会输出123.40

原理:

  • 0表示强制显示该位置的数字(即使是零),所以.00会强制保留两位小数
  • FM修饰符仍可去掉不必要的前导空格,且不会去掉强制显示的零
  • 前面的多个9用来适配不同长度的整数,若数据长度超出9的数量会显示#,可根据实际情况增加9的数量

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:43:09