万亿级人民币大写精准转换
近期因工程需要实现人民币大写转换,本来想这已经是一个古老的话题了,互联网上应当有成熟的答案,但是没想到,下载了十来个范例,没有一个令人满意。有些点击数万次的范例,确糟糕的难以想象。一个看似简单的问题,其实并不简单,因此,不得不花两天时间,对这个小小的问题作了深入的研究,设计了数个算法,最后只保留了一个方法。
实现类cn.jadepool.util.CastRMB,支持亿万元级人民币大写的精准转换。源代码已经打包在jadepool-1-2-GBK.zip资源文件中,可以通过以下链接http://download.csdn.net/download/wj800/8157455下载。
以下是测试结果:
/**TestRMB*胡开明*2014-11-14** 万亿级人民币大写精准转换* 需要jadepool-1.2-GBK.jar的支持* 原代码CastRMB.java已经添加到jadepool-1.2-GBK资源文件中*/
package test.rmb;import cn.jadepool.util.CastRMB;
import java.math.BigDecimal;/*** 万亿级人民币大写精准转换测试** @author hkm*/
public class TestRMB {public static void main(String[] args) {CastRMB rmb = new CastRMB();System.out.println(rmb.cast("0.00"));//零元整System.out.println(rmb.cast(".004"));//零角零分肆厘System.out.println(rmb.cast("31000.00"));//叁万壹仟元整System.out.println(rmb.cast("400008.00"));//肆拾万零捌元整System.out.println(rmb.cast("500001000.56"));//伍亿壹仟元伍角陆分System.out.println(rmb.cast("60090001000.002"));//陆佰亿玖仟万壹仟元零角零分贰厘System.out.println(rmb.cast("700009001000.002"));//柒仟亿零玖佰万壹仟元零角零分贰厘System.out.println(rmb.cast("8701234501678.569"));//捌万柒仟零壹拾贰亿叁仟肆佰伍拾万壹仟陆佰柒拾捌元伍角陆分玖厘System.out.println(rmb.cast("9000000000000.000"));//玖万亿元整System.out.println(new BigDecimal(Integer.MAX_VALUE));//2147483647System.out.println(rmb.cast(new BigDecimal(Integer.MAX_VALUE)));//贰拾壹亿肆仟柒佰肆拾捌万叁仟陆佰肆拾柒元整System.out.println(new BigDecimal(Long.MAX_VALUE / 1000000));//9223372036854System.out.println(rmb.cast(new BigDecimal(Long.MAX_VALUE / 1000000)));//玖万贰仟贰佰叁拾叁亿柒仟贰佰零叁万陆仟捌佰伍拾肆元整}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
