對程序中千分位符的處理

1,對List<Map<String,Object>>中數據類型爲BigDecimal的數據處理,新增千分位符號

public static List<Map<String,Object>> getFormmatResult(){
    List<Map<String,Object>> result=threadLocal.get();
    Map<String,Map<String,String>> fieIdDicMap=new ConcurrentHashMap<>();

    for(Map<String,Object> stringObjectMap: result){
        for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
            Object valObj = entry.getValue();
            String keyStr = entry.getKey();
            String typeStr = valObj.getClass().toString();
            if(StringUtils.contains(typeStr,"BigDecimal")){
                BigDecimal valBig = (BigDecimal) valObj;
                String valStr = setCellStyleAccounting(valBig.doubleValue());
                stringObjectMap.put(keyStr,valStr);
            }

        }
    }

    threadLocal.remove();
    dictValueMap.remove();
    return result;
}

小數位後面的#表示,原數據有幾位小數就保留幾位小數(不超過八位時)

public static String setCellStyleAccounting(double number)
{
    NumberFormat nf = new DecimalFormat(",###.########");
    String testStr = nf.format(number);
    return testStr;
}

2,單獨使用格式化數據

/**
 * 新增千分位符號
 * @param number
 * @return
 */
public static String setCellStyleAccounting(double number)
{
    NumberFormat nf = new DecimalFormat(",###.########");
    String testStr = nf.format(number);
    return testStr;
}
3,字符串去除千分位符號,適用於json
/**
 * 字符串去除千分位符號,適用於json
 * @param str
 * @return
 */
public static String  replaceString(String str){
    Pattern p = Pattern.compile("\\d+,\\d+?");
    Matcher m = p.matcher(str);
    StringBuffer sb=new StringBuffer();
    while(m.find()){
        m.appendReplacement(sb,m.group().replace(",", ""));
        System.out.println(m.group());
    }
    m.appendTail(sb);
    return sb.toString();
}

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章