Oracle数值小数前0的显示问题:实现前置0正常输出
解决Oracle中小数前0缺失的显示问题
执行select 'A='||(0.22*0.11)||'' as A from dual;时出现.0242的原因是:Oracle隐式将数值转换为字符串时,默认规则会省略小于1的正数的整数部分0。
要强制显示整数位的0,用TO_CHAR函数指定明确的格式模型即可:
select 'A='||TO_CHAR(0.22*0.11, '9999999990.9999') as A from dual;
格式模型关键部分说明:
0:代表必须显示的数字位,哪怕是前导0或末尾0,这是确保整数位0不缺失的核心9:代表可选数字位,无对应数字时会显示空格(整数部分前导位置).:指定小数点的固定位置
如果计算结果的小数位数不固定,可添加FM修饰符去掉格式模型自带的多余空格,用更灵活的格式:
select 'A='||TO_CHAR(0.22*0.11, 'FM9999999990.999999') as A from dual;
执行以上语句就能得到期望的A=0.0242结果。
内容的提问来源于stack exchange,提问作者Uday
相关产品推荐
相关产品推荐

