- 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;
您可能关注的文档
最近下载
- 中学生交通安全教育培训课件PPT.pptx VIP
- 牵引供电系统 牵引变电所供电方式 牵引变电所供电方式.ppt VIP
- 1.03 玉米高产管理技术 - (先锋克劳森).pptx VIP
- 杜邦公司讲座杜邦安全管理介绍.pptx VIP
- 2025年广西财经学院辅导员招聘考试笔试模拟试题及答案解析.docx VIP
- (正式版)DB65∕T 3611-2023 《农业用水定额》.pdf VIP
- 2025年江苏省南京市中考英语试卷(含解析).pdf VIP
- (2025年版)国家基层高血压防治管理指南PPT课件.pptx VIP
- 2024年山东交通职业学院高职单招(英语/数学/语文)笔试题库含答案解析.docx VIP
- 2017年-2022年暨南大学考研701美学原理真题.pdf
原创力文档

文档评论(0)