oracle to_char和java decimalformat的显示百分数的示例

有需求:

从oracle数据库里读取到的number,小数点后保留2位,整数位不变,并加上百分号。

采用以下方法

select to_char(0.556, 'FM999999999999990.00') || '%' from dual; # 0.56%
select to_char(13.556, 'FM999999999999990.00') || '%' from dual; #13.56%
select to_char(225.1, 'FM999999999999990.00') || '%' from dual; #225.10%

解释:

  • 0表示的是必须要显示的位,如果没有数就填0,对于225.1只有1位小数,因此第2位小数会被填0。
  • 9和0一样,也表示必须要填的位,如果没有数就填空格。比如225.1,没有千位以上的数字,因此全部填空格
  • FM用于将产生的空格trim掉,这样225.1通过9产生的空格就会被删掉
  • 个位必须要写0,否则0.556就会被转换为.56%

同时又有需求

对于java读取的double,小数点后保留2位,整数位不变,并加上百分号。

Java采用DecimalFormat控制显示的double格式,可以采用以下定义

final DecimalFormat df = new DecimalFormat("#0.00'%'");
df.format(0.556); // 0.56%
df.format(13.556); // 13.56%
df.format(225.1); // 225.10%

解释:

  • 0表示的是必须要显示的位,如果没有数就填0,这个和oracle to_char的要求一致
  • #表示的是可以显示的位,如果没有就不显示。
  • ‘%’如果不加上单引号的,显示的数会被乘以100,比如0.556就会被显示为55.60%
  • 个位必须要写0,这个和oracle to_char的原因一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值