【java day4】人民币数字转汉字

1、

/*
	人民币——数字转汉字
*/

class Num2Rmb
{

	private String[] hanArr={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
	private String[] unitArr = {"十","千","百"};
	/*
	把一个浮点数分解成整数部分和小数部分
	@param num 需要被分解的数
	@return 分解出来的整数部分和小数部分,用两个数组表示  
	*/

	private String[] divide(double num)
	{
		//将一个浮点数强制类型转换为long型,得到它的整数部分
		long zheng =(long)num;
		//浮点数减去整数部分,得到小数部分,小数部分乘以100后再取整得到2位小数
		long xiao = Math.round((num - zheng) * 100);
		//下面用了两种方法把整数转换为字符串
		return new String[]{zheng + "",String.valueOf(xiao)};
	}

	/*
	把一位四位的数字字符变成汉子字符串
	@param numStr 需要被转换的四位的数字字符串
	@return 四位的数字字符串被转换成汉子字符串
	*/

	private String toHanStr(String numStr)
	{
		String result = "";
		int numLen = numStr.length();
		//遍历数字字符串的每一位数字
		for ( int i =0;i<numLen ;i++ )
		{
			//char-->int ,ASCII码相差48 
			//char型数字减去48得到int型数字,eg:‘4’--> 4
			int num = numStr.charAt(i)-48;
			//如果不是最后一位数字,而且数字不是0,则需要添加单位(十、千、百)
			if (i!=numLen -1 && num!=0)
			{
				result += hanArr[num] + unitArr[numLen -2-i];
			}
			else
			{
				result += hanArr[num];
			}
		}
		return result;
	}

	//主函数
	public static void main(String[] args) 
	{
		Num2Rmb nr = new Num2Rmb();
		//分解数字
		//System.out.println(Arrays.toString(nr.divide(24988753.162)));
		//数字字符串变汉子字符串
		System.out.println(nr.toHanStr("6109"));
	}

}


2、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值