从Integer转换后格式化十进制数

时间:2017-06-23 11:14:01

标签: java decimalformat

我需要将整数转换为十进制数,然后根据certian条件以精确的2,3,4或5小数格式化它。

所以我使用了这段代码:

public  NumberFormat decimalFormatter = new DecimalFormat("#,##0.00");
    public static NumberFormat decimalFormatter3 = new DecimalFormat("#,##0.000");
    public static NumberFormat decimalFormatter4 = new DecimalFormat("#,##0.0000");
    public static NumberFormat decimalFormatter5 = new DecimalFormat("#,##0.00000");
    public void run(Integer numeroDecimali, Articoli articoli){
        if(numeroDecimali == null || numeroDecimali == 2)
            super.setValueAt(articoli.getPrezzoTot()!=null ? 
                    decimalFormatter.format(articoli.getPrezzoTot()) : "", rowIndex, 7);
        else if(numeroDecimali == 3)
            super.setValueAt(articoli.getPrezzoTot()!=null ? 
                    decimalFormatter3.format(articoli.getPrezzoTot()) : "", rowIndex, 7);
        else if(numeroDecimali == 4)
            super.setValueAt(articoli.getPrezzoTot()!=null ? 
                    decimalFormatter4.format(articoli.getPrezzoTot()) : "", rowIndex, 7);
        else if(numeroDecimali == 5)
            super.setValueAt(articoli.getPrezzoTot()!=null ? 
                    decimalFormatter5.format(articoli.getPrezzoTot()) : "", rowIndex, 7);

我把十进制数和十进制数(2,3,4,5)我可以格式化文本。 这段代码有效,但有没有办法在没有那么多IF语句的情况下实现这个目的?有没有办法结合numeroDecimali的信息来优化代码?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

IQueryable<User> query=  _odb.User.Where(a=>!a.IsDisable);

if(request.RoleNeeded)
{
   query=from qu in query
   join ro in _odb.Role on qu.Role_Id equals ro .Id
   join de in _odb.Department on qu.Department_Id equals de.Id into jj from kk in jj.DefaultIfEmpty()
    where where (qu.Name.contains("G") || ro.Name.contains("G") || de.Name.contains("G"))
   select qu
}

if(request.DepartmentNeeded)
{
   query=from qu in query
   join de in _odb.Department on qu.Department_Id equals de.Id
   join ro in _odb.Role on qu.Role_Id equals ro .Id into jj from kk in jj.DefaultIfEmpty()
    where where (qu.Name.contains("G") || ro.Name.contains("G") || de.Name.contains("G"))
   select qu
}

请确保String.format( "%,." + numeroDecimali + "f", articoli.getPrezzoTot() ); 具有有效值。