package com.test;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Number2Chinese {
	private double number;
	String [] strunit = {"","拾","百","千","万","十","百","千","亿","十","百","千","万","兆"};
	String [] strnum = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
	String [] strDecimalUnit = {"角","分"};
	
	/**
	 * @return the number
	 */
	public double getNumber() {
		return number;
	}
	/**
	 * @param number the number to set
	 */
	public void setNumber(double number) {
		this.number = number;
	}
	private String Convert(long longNumber, boolean isDecimal)
	{	
		long temp = longNumber;
		int position = 0;
		String chinese = "";
		while(temp > 0)
		{
			if(!(position==0 && temp%10 == 0))
			{
				chinese = strnum[(int)temp%10] + (isDecimal ? strDecimalUnit[position] : strunit[position]) + chinese;
			}
			
			position++;
			temp = temp / 10;
		}
		
		if(isDecimal)
		{
			if(chinese != "")
				chinese = "零"+ chinese;
		}else{
			if(chinese != "")
				chinese += "圆";
		}
		return chinese;
	}
	
	private String Convert(double numberD){
		BigDecimal bigDecimal = BigDecimal.valueOf(numberD).setScale(2, RoundingMode.CEILING);
		
		double doubleNumber = bigDecimal.doubleValue();
		long intergerNumber = bigDecimal.longValue();
		int decimalNumber = (int)((doubleNumber*100)%100);
		
		return Convert(intergerNumber, false) + Convert(decimalNumber, true);
	}
	
	public String Convert(){
		return Convert(number);
	}
	
	public static void main(String[] args){
		Number2Chinese c = new Number2Chinese();
		c.setNumber(1212365423);
		System.out.print(c.Convert());
	}
}