Android Java DecimalFormat中解决.00的问题

 最近在做一个数字显示效果:每三个数字加一个逗号,并且保留两位小数。

如:332,630.00 195,717.00 使用的代码是:

public static String format2Decimal(float data) {
    DecimalFormat df = new DecimalFormat("#,###.00");
    return df.format(data);
}
但是在实现数字“0.00”的时候,变成了“.00”,“0.12”变成了“.12”,这样就不是我要的效果了。

 查阅了资料后发现,DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。

0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。

这样我就想到了一个方法,把整数最后一位“#”改为“0”,尝试性修改了一下代码,结果完成了我要的效果。代码如下:

/**
 * 将float类型的数据转换成以3位逗号隔开的字符串,并且保留两位小数
 *
 * @return
 */
public static String format2Decimal(float data) {
    DecimalFormat df = new DecimalFormat("#,##0.00");
    return df.format(data);
}

/**
 * 将float类型的数据转换成以3位逗号隔开的字符串,并且保留一位小数
 *
 * @return
 */
public static String format1Decimal(float data) {
    DecimalFormat df = new DecimalFormat("#,##0.0");
    return df.format(data);
}

/**
 * 将float类型的数据转换成以3位逗号隔开的字符串,并且保留整数
 *
 * @return
 */
public static String format0Decimal(float data) {
    DecimalFormat df = new DecimalFormat("#,##0");
    return df.format(data);
}
好了,希望对大家有所帮助。





评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值