将数字转化为中文金额大写形式.docVIP

  • 5
  • 0
  • 约6.54千字
  • 约 9页
  • 2017-12-19 发布于河南
  • 举报
将数字转化为中文金额大写形式

将数字转化为中文金额大写形式 将数字转化为中文金额大写形式 /** * 程序目的: * 从命令行接收一个数,并将其转化为中文金额的大写方式 * 例如 123.45 -- 壹佰贰拾叁元肆角伍分 * @author LovinChan * * 看到网上有很多这样的例子程序,不过觉得很不满意。有些程序我从命名上就觉得 * 实在是不符合规范,程序里面的算法没有让人明白得很清楚的注释,读上去觉得有 * 点难度,可读性不强。而且很多程序还存在不少bug,随便一测就测出来了。 * 所以本人还是决定重新写一下这个程序,并且尽量做到消除不必要的bug。这个程 * 序我没有用什么很精妙的算法,不过用了一些Java类库中的类,像是正则表达式之类 * 的东西。由于本人对算法不怎么在行,在做转换操作的时候用的是很笨的方法。望各位 * 大虾海涵,呵呵。 * * 程序的注释我尽量写得详细一点,如果觉得这个程序哪里有问题或者是哪里有改进的 * 地方欢迎随时跟我交流。 * 我的msn:egg.chenlw@ * QQ:543669516(注上为什么加我就可以了) * 我的blog:/egg_chen * 欢迎交流 */ public class Trans2RMB { /** * 测试程序的可行性 * @param args */ public static void main(String[] args) { System.out.println(--------将数字转换成中文金额的大写形式------------\n); Trans2RMB t2r = new Trans2RMB(); String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum()))); // 如果转换过后是一个空串,则不输出屏幕 if(!.equals(s)) { System.out.println(转换成中文后为: + s);; } System.out.println(\n---------------------------------------------); } /** * 从命令行接收一个数,在其中调用 checkNum() 方法对其进行 * 验证,并返回相应的值 * @return 如果输入合法,返回输入的这个数 */ private String getNum() { String s = null; System.out.println(请输入一个数字(精确到小数点后两位):); // 从命令行输入这个浮点数 java.util.Scanner scanner = new java.util.Scanner(System.in); s = scanner.next(); // 判断用户输入是否合法 // 若合法,返回这个值;若非??返回 0 if(this.checkNum(s)) { return s; } else { return ; } } /** * 判断用户输入的数据是否合法,用户只能输入大于零的数字,不能输入其它字符 * @param s String * @return 如果用户输入数据合法,返回 true,否则返回 false */ private boolean checkNum(String s) { // 如果用户输入的数里有非数字字符,则视为非法数据,返回 false try { float f = Float.valueOf(s); // 如果这个数小于零则视为非法数据,返回 false if(f 0) { System.out.println(非法数据,请检查!); return false; }else { return true;

文档评论(0)

1亿VIP精品文档

相关文档