zoukankan      html  css  js  c++  java
  • 数字转中文

    package zxc.utils;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class RmbConversion {
    
    	static StringBuffer	buf;
    	
    	public static void main(String[] args) {
    		System.out.println(insensitive(1000));
    	}
    
    	/** *主方法(负责完成小写转大写)* */
    	public static StringBuffer insensitive(double totalMoney) {
    		int count = 0;
    		buf = new StringBuffer();
    		String[] digit = { "分", "角", "元", "拾", "佰", "仟", "万" };
    		int shang, mo = 0;
    		int totalMoneys = (int) (totalMoney * 100);
    
    		//int totalMoneys = 5523;
    		/** *这个循环的大小其实可以根据digit数组的长度来控制** */
    		Integer integer = 10000000;
    		for (int exponent = digit.length - 1; exponent >= 0; exponent--) {
    			integer /= 10;
    			shang = totalMoneys / integer;
    			mo = totalMoneys % integer;
    			if(count == 0){
    				count = getMarker(shang); //设置的标记数,用来判断'0'出现的情况(有效部分的'0',无效部分的'0')
    			}		
    			setValue(shang, digit[exponent],count, mo);
    			totalMoneys = mo;
    		}
    		return buf;
    	}
    
    	/***对传递过来的整数进行赋值***/
    	public static void setValue(int zheShu, String digit, int count, int mo) {
    		if (zheShu > 0) {
    			buf.append(getConstant(zheShu) + digit);
    		} else if(zheShu == 0){
    			if(count > 0 && mo >0)
    			{	//有效'0'
    				buf.append(getConstant(zheShu) + digit);
    			}else{
    				//无效'0'
    				buf.append("×" + digit);
    			}	
    		}
    	}
    	
    	/*对传递进来的数进行判断,如果大于0则加一*/
    	public static int getMarker(int number){
    		if(number > 0){
    			return 1;
    		} 
    		return 0;
    	}
    
    	public static String getConstant(int constant) {
    		Map<Integer, String> num = new HashMap<Integer, String>();
    		String[] number = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
    		for (int i = 0; i < 10; i++) {
    			num.put(i, number[i]);
    		}
    		return num.get(constant).toString();
    	}
    }
    
  • 相关阅读:
    linux c编程错误汇总
    linux 相对路径
    内存池版本4多线程可变大小对象的内存池
    2. D3DBlankWindow添加透视投影矩阵
    1. D3DBalnkWindow
    内存池版本3单线程可变大小对象的内存池
    内联函数提高程序性能
    代码优化
    STL总结
    内存池版本2单线程固定大小对象的内存池
  • 原文地址:https://www.cnblogs.com/qq1988627/p/6606891.html
Copyright © 2011-2022 走看看