java中小数格式化函数

 一、NumberUtils

 
方法名 描述   
    
format(double d, int length) 将小数四舍五入后返回字符型   
On Entry: double d: 需要处理的小数 如:3.73394
int length:要保留的位数   
On Exit: return String返回处理后的字符小数。   
format(String d, int length) 将字符型小数四舍五入后返回字符型   
On Entry: String d:需要处理的小数字符串 例如”0.137540”
int length: 要保留的位数   
On Exit: return String返回处理后的字符小数。   
getPrecent (int a, int b,int c) 取百分比后若干位小数   
On Entry: Int a: 被除数
Int b: 除数
Int c: 要保留的位数   
On Exit: return String返回精确到小数点后第c位的百分比字符串。 


import java.text.NumberFormat;

public class NumberUtils
{

    private static final NumberUtils numberUtils = new NumberUtils();

    public NumberUtils()
    {
    }

    public static NumberUtils getInstance()
    {
        return numberUtils;
    }

    public static String format(double d, int places)
    {
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMinimumFractionDigits(places);
        nf.setMaximumFractionDigits(places);
        return nf.format(d);
    }

    public static String format(Double d, int places)
    {
        return format(d.doubleValue(), places);
    }

    public static String format(String d, int places)
    {
        return format(Double.parseDouble(d), places);
    }

    public static String getPrecent(float a, float b, int cnt)
    {
        String Precent = "";
        if(b == 0.0F)
        {
            Precent = "0";
            Precent = Precent + ".";
            Precent = Precent + "0";
            Precent = Precent + "%";
            return Precent;
        }
        if(a == b)
        {
            Precent = "100";
            Precent = Precent + "%";
            return Precent;
        }
        float result = (a * 100F) / b;
        String vresult = String.valueOf(result);
        int nn = vresult.indexOf(".");
        if(vresult.length() >= nn + cnt + 1)
        {
            Precent = vresult.substring(0, nn + cnt + 1);
            getInstance();
            Precent = format(Precent, cnt);
        } else
        {
            Precent = vresult;
            String pointStr = Precent.substring(Precent.lastIndexOf(".") + 1, Precent.length());
            for(int i = 0; i < cnt - pointStr.length(); i++)
                Precent = Precent + 0;

        }
        Precent = Precent + "%";
        return Precent;
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值