600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 阿拉伯数字转换成对应的大写中文输出

阿拉伯数字转换成对应的大写中文输出

时间:2020-09-15 04:41:25

相关推荐

阿拉伯数字转换成对应的大写中文输出

记得上次换工作时去某BOSS厂商面试时,有这样一道题(RT),当时只是简单的说说想法,今天有时间,把具体的细节实现了,如下:

/*** Description: 把输入的阿拉巴数字转换成大写中文输出* 细节实现:* 1、阿拉伯数字到大写中文数字的对应转换* 2、单位转换,9位以上统一单位是亿,5-8位统一单位是万* 3、用求商运算判断整数位数据及单位* 4、用求模运算,获得该数去整后的余数,如果余数位数与求余前长度相差大于1,输出描述中按照中文习惯加零* 5、把输出描述中后边的零全部干掉* @Version1.0 -12-19 下午02:16:54 mustang created* @param value*/public static void changNum2Chinese(long value) {Map<String, String> danwei = new HashMap<String, String>();danwei.put("1", "");danwei.put("2", "拾");danwei.put("3", "佰");danwei.put("4", "仟");danwei.put("5", "万");danwei.put("6", "十");danwei.put("7", "百");danwei.put("8", "千");danwei.put("9", "亿");Map<String, String> daxie = new HashMap<String, String>();daxie.put("0", "");daxie.put("1", "壹");daxie.put("2", "贰");daxie.put("3", "叁");daxie.put("4", "肆");daxie.put("5", "伍");daxie.put("6", "陆");daxie.put("7", "柒");daxie.put("8", "捌");daxie.put("9", "玖");String str = "";long shang = 0;long yushu = value;long length = (yushu + "").length();while (length > 0) {shang = yushu / (long) Math.pow(10, length - 1);yushu = yushu % (long) Math.pow(10, length - 1);str += daxie.get(shang + "") + danwei.get(length + "");long nlength = (yushu + "").length();if (length > 9 && nlength < 9) {str += "亿";}if (length > 5 && nlength < 5) {str += "万";}if (length - nlength > 1) {str += "零";}if (length == 1) {length = 0;} else {length = (yushu + "").length();}}while (str.endsWith("零")) {str = str.substring(0, str.length() - 1);}System.out.println(str);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。