oracle百分比留两位小数,oracle保留两位小数

TO_CHAR(字段名,'999,999,999.99')

使用TO_CHAR的方式,有两个弊端,也是需要注意的地方:

1>整数部分的9要写的足够多,否则会错误显示,如下:

错误:SELECT TO_CHAR(199999999.1256,'9,999.99') FROM DUAL              --显示结果:#########

正确:SELECT TO_CHAR(199999999.1256,'999,999,999.99') FROM DUAL   --显示结果:199,999,999.13

2>对小于1的数字情况要单独处理,当为0时,会显示为.00,而非0.00。当显示为0.2时,会显示为.2。如下:

错误:SELECT TO_CHAR(0,'9,99.99') FROM DUAL        --显示结果:.00正确:SELECT DECODE(0,0,'0.00',TO_CHAR(199999999.1256,'999,999,999.99')) FROM DUAL    --显示结果:0.00

以下为保留小数处理的相关函数:

一、ROUND(四舍五入):ROUND( number, [ decimal_places ] )

描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。

SELECT ROUND( number, [ decimal_places ] ) FROM DUAL

参数:

number : 欲处理之数值

decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )

示例 :

select round(123.456, 0) from dual;          回传 123

select round(123.456, 1) from dual;          回传 123.5

select round(123.456, 2) from dual;          回传 123.46

select round(123.456, 3) from dual;          回传 123.456

select round(-123.456, 2) from dual;         回传 -123.46

当然,保留两位小数的处理,在格式要求的不是很严格的条件下,也可以用round函数。

在保留小数这个问题上round函数有以下弊端:

①当为整数时,无论如何写,最终返回的都是整数,如下:

SELECT ROUND(199.000,2) FROM DUAL --199

②返回值中不会自带千分符,如下:

SELECT ROUND(199999.2356,2) FROM DUAL  --199999.24

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值