java 부동점수 인민폐 전환을 실현하는 작은 예

3696 단어
 
  
import java.util.ArrayList;
import java.util.List;

public class RMBConverter2 implements IRMBConverter {

    private static final String [] RMB_NUMBER ={" "," "," "," "," "," "," "," "," "," "};

    private static final String [] RMB_ATTR = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "};

    private static final String[] RMB_FEN = {" "," "};

     
    @Override
    public String change2RMB(double counts) {
        StringBuffer rsBuf = new StringBuffer();

        if (counts == 0L) {
            return " ";
        }

        if (counts < 0) 
            rsBuf.append(" ");

        String zheng = strConverse(String.valueOf((long)counts));
        String xiao = strConverse(String.valueOf(Math.round((counts - (long)counts)*100)));

        char [] zhengArray = zheng.toCharArray();
        char [] xiaoArray = xiao.toCharArray();

        int zLength = zhengArray.length;
        int xLength = xiaoArray.length;

        List zhengList = new ArrayList();

        for(int i =0; i< zLength; i++) {
            int value = Integer.parseInt(""+zhengArray[i]);
            if (value == 0 && (i != 4) && (i != 8) && i != 0) {
                zhengList.add(RMB_NUMBER[value]);
            }else {
                zhengList.add(RMB_NUMBER[value]+
                     RMB_ATTR[i]);
            }
        }

        for(int i = zhengList.size()-1; i>=0; i--) {
            rsBuf.append(zhengList.get(i));
        }

         
        for(int i =0; i            int value = Integer.parseInt(""+xiaoArray[i]);
            if (value > 0 ) {
                rsBuf.append(RMB_NUMBER[value])
                 .append(RMB_FEN[xLength-i-1]);
            }
        }

        String rs = rsBuf.toString();
        rs = rs.replaceAll(" +", " ");
        rs = rs.replaceAll(" ", " ");
        rs = rs.replaceAll(" ", " ");
        rs = rs.replaceAll(" ", " ");
        rs = rs.replaceAll(" ", " ");
        return rs;
    }

     
    private String strConverse(String str) {
        StringBuffer rs = new StringBuffer();
        char [] strArray = str.toCharArray();
        for(int i = str.length()-1; i>=0; i--) {
            rs.append(strArray[i]);
        }
        return rs.toString();
    }

     
    public static void main(String args []) {

        RMBConverter2 c2 = new RMBConverter2();
        System.out.println(c2.change2RMB(2001004.10));
        System.out.println(c2.change2RMB(2000000.10));
        System.out.println(c2.change2RMB(0L));
        System.out.println(c2.change2RMB(1121000010000000L));
    }

}

좋은 웹페이지 즐겨찾기