- 浏览: 286332 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
kane0409:
NB,解决了,我是把里面两个文件夹中的文件单独复制到eclip ...
解决initializing java tooling(1%) -
string2020:
那如果不采用Tomcat容器认证,怎么办?
Tomcat Session共享 -
hety163:
删除当前工作目录下的WORKSPACE/.metadata/. ...
解决initializing java tooling(1%) -
fox13754888170:
害的我好惨啊 每天工具不动弹 领导还以为我偷懒呢。。。。 ...
解决initializing java tooling(1%) -
ywc123zk:
十分感谢,myeclipse8.0也出现这种情况,用你的方法解 ...
解决initializing java tooling(1%)
import java.text.DecimalFormat; import java.text.NumberFormat; public class MoneyUtils { /** * 中文中繁写的汉字金额 经常使用 */ public static String[] upperNums = new String[] { "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "零","整","正" }; /** * 与汉字相应的转化的数字 */ public static int[] lowerNums = new int[] { 1, 2, 3, 4, 5, 6, 7,8, 9, 0 ,0,0}; /** * 倍数关键词 简写 注意:一定要由大到小 */ public static String[] rmbMult = new String[] { "亿", "万", "仟", "佰", "拾","元","圆","整","正","角","分" }; /** * 与倍数关键词对应的倍数 */ public static double[] toMult = new double[] { 100000000, 10000, 1000, 100,10,1,1,1,1,0.1,0.01 }; public static String negative = "(负数)"; public static double toLower(String amountInWords){ int ispositive = 1; if(amountInWords.indexOf(negative)>=0){ ispositive = -1; amountInWords = amountInWords.replace(negative, ""); } double amountInFigures = 0; if(amountInWords.length() == 1){ return getLowerNum(amountInWords); } else if(amountInWords.length() == 2 && amountInWords.substring(0,1).equals(upperNums[9])){ return getLowerNum(amountInWords.substring(1,2)); }else{ for (int i = 0; i < rmbMult.length; i++) { int index = amountInWords.lastIndexOf(rmbMult[i]); if (index >= 0) { String storeMult = amountInWords.substring(0, index); amountInWords = amountInWords.substring(index + 1); amountInFigures = toLower(storeMult)*toMult[i] + toLower(amountInWords); break; } } } return amountInFigures*ispositive; } private static double getLowerNum(String upperNum){ for (int j = 0; j < upperNums.length; j++) { if(upperNum.equals(upperNums[j])){ return lowerNums[j]; } } return 0; } public static String toUpper(String amountInFiguresStr){ String amountInWords = ""; String integerPart = amountInFiguresStr; String decimalPart = ""; int indexOfDot = amountInFiguresStr.indexOf('.'); if(indexOfDot >= 0){ integerPart = amountInFiguresStr.substring(0,indexOfDot); if(amountInFiguresStr.length() - 1 > indexOfDot){ decimalPart = amountInFiguresStr.substring(indexOfDot+1); } } double tempPrice = 0; try { tempPrice = Double.parseDouble(amountInFiguresStr); } catch (NumberFormatException e) { tempPrice = 0; } if(tempPrice == 0){ //如果输入的是0或者无法转成double时,设为0 amountInWords = upperNums[9]; //零 }else{ if(!integerPart.equals("")){ long integerNum = Long.parseLong(integerPart); if(tempPrice < 0){ amountInWords = negative; } if(integerNum != 0){ amountInWords += intToUpper(Math.abs(integerNum)); amountInWords += rmbMult[5]; //元 } } if(decimalPart.equals("") || Integer.parseInt(decimalPart) == 0){ amountInWords += rmbMult[7]; //整 }else{ amountInWords += getUpperNum(Integer.parseInt(decimalPart.substring(0,1))); if(!decimalPart.substring(0,1).equals("0")){ amountInWords += rmbMult[9]; //角 } if(decimalPart.length() > 1 && !decimalPart.substring(1,2).equals("0")){ amountInWords += getUpperNum(Integer.parseInt(decimalPart.substring(1,2))) + rmbMult[10]; //分 } } } return amountInWords; } private static String intToUpper(long amountInFigures){ if(amountInFigures == 0){ return ""; } else if(amountInFigures < 10){ return getUpperNum((int)amountInFigures); }else{ String amountInWords = ""; for(int i=0;i<toMult.length - 2;i++){ int divisor =(int)(amountInFigures / (long)toMult[i]); long mod = amountInFigures % (long)toMult[i]; if(divisor > 0){ amountInWords += intToUpper(divisor) + rmbMult[i]; if(0 < mod && mod < (long)toMult[i]/10){ amountInWords += upperNums[9]; } amountInWords += intToUpper(mod); break; } } return amountInWords; } } private static String getUpperNum(int lowerNum){ for(int i=0;i<lowerNums.length;i++){ if(lowerNum == lowerNums[i]){ return upperNums[i]; } } return upperNums[9]; //零 } public static void main(String[] args){ String amountInFiguresStr = "-124500002.43"; String amountInWords = toUpper(amountInFiguresStr); System.out.println(amountInWords); double amountInFigures = toLower(amountInWords); NumberFormat formatter = new DecimalFormat("0.00"); System.out.println(formatter.format(amountInFigures)); } }
如果有错误,希望大家能够给我指出来,谢谢
发表评论
-
Tomcat Session共享
2011-08-08 15:28 1735一个Tomcat中有多一个web应用,然后想共享session ... -
Struts2返回Json的配置
2011-07-15 11:10 1210<result type="json&q ... -
Struts2.2.1配置sitemesh和freemarker
2011-01-02 19:48 3590导入包: struts2-core-2.2.1.jar ... -
Linux系统安装SVN服务器
2010-10-16 23:04 2737下载 httpd-2.2.16.tar.gz subver ... -
Linux系统安装 Tomcat 7
2010-10-16 14:31 56251. 下载apache-tomcat-7.0.2.ta ... -
Linux系统安装 jdk1.6.22
2010-10-16 11:38 18901. 下载JDK,我下载的是最新的jdk 1.6.22 ... -
Java String To Date 字符串转时间
2010-04-06 12:02 5025字符串转化成时间格式,Format("yyyy-MM ... -
selenium页面自动测试
2010-03-11 18:20 1819下载selenium-java-client-driver.j ... -
Java Struts2 自定义validation验证
2010-03-01 18:09 2023定义验证类,继承FieldValidatorSupport,重 ... -
Java Mail 邮件群发
2010-03-01 12:47 2630网上有很多的文章关于Java Mail发送邮件的问题,但是也有 ... -
JavaMail发送邮件
2010-02-23 14:23 1152网上有许多关于发送邮件的文章,但是也有许多文章没有提到身份验证 ... -
页面disabled 不能提交
2010-01-18 13:06 1507在页面上有一个标签是disabled=true的,提交的Act ... -
一个Action中的两个方法之间的跳转
2010-01-06 13:37 1264<action name="ed ... -
java pom.xml出错的解决方法
2010-01-04 16:38 2115在做项目的过中,每次从服务器更新项目,中会有错误,pom.xm ... -
java的重定向
2010-01-04 13:24 1481java的重定向有两种方式forward和redirect 我 ... -
freemarker格式化问题
2010-01-01 15:34 2705freemarker数据格式化问题(即数值超过四位数时有逗号) ... -
No result defined for action and result input
2010-01-01 15:03 16771今天在编程的时候,我遇到了No result defi ... -
Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
2009-12-31 14:18 7951) struts-default.xml 这个文件是str ... -
使用JDBC操作数据库
2009-12-31 13:20 1377#使用JDBC操作数据库 #1、JDBC基础 #JDBC简介: ... -
JSP连接Mysql
2009-12-22 15:27 967<%@ page language="ja ...
相关推荐
递归算法到非递归算法的转换,递归算法到非递归算法的转换。
递归实现回文判断
ackman函数的递归和非递归,学习数据结构的素材,非递归是使用堆栈实现的。
java 用递归实现字符串反转 java 用递归实现字符串反转
八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码
快速选择非递归与递归算法实现
汉诺塔的非递归实现,c++实现的,很简单,只有50多行,从递归的汉诺塔改编而来,将原来递归时的参数状态保存在栈中,入栈代替递归,出栈代替递归返回。
C语言递归实现逆序程序 C语言初学者必会
c++实现的关于递归实现逆序字符串,有需要的可以下载
阿克曼函数非递归实现,用到了堆栈,对于学习数据结构的人来说很有用
实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。
数据结构,递归实现十进制数转二进制数,C++实现,可多次输入数
快速排序 非递归实现方式的完整源代码和测试结果。
使用C++非递归实现fibonacci数列,对正在学习算法的同学应该挺有帮助的
递归实现元素全排列
不用递归实现的无限级树型菜单,加载速度超快。
非递归实现的最短哈密顿回路,用分支限界法优化,但速度不太理想。
是个简单的C语言写的递归实现字符串反向输出。
二叉树的创建与三种遍历的递归与非递归实现 包括二叉树的动态创建,前序遍历,中序遍历,后续遍历的递归与非递归方法的实现。
自己写的用递归实现的背包问题,欢迎各位高手指正。