我需要将整数转换为十进制数,然后根据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的信息来优化代码?
答案 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() );
具有有效值。