- 浏览: 290552 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 1780一个Tomcat中有多一个web应用,然后想共享session ... -
Struts2返回Json的配置
2011-07-15 11:10 1237<result type="json&q ... -
Struts2.2.1配置sitemesh和freemarker
2011-01-02 19:48 3622导入包: struts2-core-2.2.1.jar ... -
Linux系统安装SVN服务器
2010-10-16 23:04 2773下载 httpd-2.2.16.tar.gz subver ... -
Linux系统安装 Tomcat 7
2010-10-16 14:31 56621. 下载apache-tomcat-7.0.2.ta ... -
Linux系统安装 jdk1.6.22
2010-10-16 11:38 19221. 下载JDK,我下载的是最新的jdk 1.6.22 ... -
Java String To Date 字符串转时间
2010-04-06 12:02 5049字符串转化成时间格式,Format("yyyy-MM ... -
selenium页面自动测试
2010-03-11 18:20 1848下载selenium-java-client-driver.j ... -
Java Struts2 自定义validation验证
2010-03-01 18:09 2045定义验证类,继承FieldValidatorSupport,重 ... -
Java Mail 邮件群发
2010-03-01 12:47 2649网上有很多的文章关于Java Mail发送邮件的问题,但是也有 ... -
JavaMail发送邮件
2010-02-23 14:23 1171网上有许多关于发送邮件的文章,但是也有许多文章没有提到身份验证 ... -
页面disabled 不能提交
2010-01-18 13:06 1536在页面上有一个标签是disabled=true的,提交的Act ... -
一个Action中的两个方法之间的跳转
2010-01-06 13:37 1289<action name="ed ... -
java pom.xml出错的解决方法
2010-01-04 16:38 2146在做项目的过中,每次从服务器更新项目,中会有错误,pom.xm ... -
java的重定向
2010-01-04 13:24 1505java的重定向有两种方式forward和redirect 我 ... -
freemarker格式化问题
2010-01-01 15:34 2742freemarker数据格式化问题(即数值超过四位数时有逗号) ... -
No result defined for action and result input
2010-01-01 15:03 16801今天在编程的时候,我遇到了No result defi ... -
Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
2009-12-31 14:18 8681) struts-default.xml 这个文件是str ... -
使用JDBC操作数据库
2009-12-31 13:20 1426#使用JDBC操作数据库 #1、JDBC基础 #JDBC简介: ... -
JSP连接Mysql
2009-12-22 15:27 1000<%@ page language="ja ...
相关推荐
下面,我们将深入探讨如何在C#中实现大小写金额转换,基于提供的代码片段进行分析和扩展。 ### C#中的大小写金额转换 #### 功能概述 在C#中实现大小写金额转换的核心在于将阿拉伯数字转换为中文大写数字,并适当地...
非递归实现的基本思想是将递归调用转化为循环,并使用数据结构(如堆栈)存储中间结果,避免了递归带来的调用栈溢出问题。 非递归实现的步骤大致如下: 1. 初始化一个堆栈,用于保存待处理的阿克曼函数参数对`(m, ...
人民币的大小写转换是财务和会计领域中的基本操作,因为在中国,正式的财务文件中通常要求金额用大写汉字表示,以防止篡改和增加准确性。这个“人民币转换程序”就是为了解决这样的问题而设计的。 程序的核心功能是...
根据给定的文件信息,我们可以总结出以下关于“递归实现回文判断”的知识点: ### 一、回文概念 回文是指一个字符串从左到右读和从右到左读都是一样的字符串。例如,“abcba”、“madam”等都是回文字符串。 ### ...
它包括递归出口(定义递归何时停止)和递归体(描述如何通过较小的子问题求解当前问题)。递归出口通常是基本情况,递归体则描述了递归如何自减规模并逐步解决问题。 将递归转换为非递归的关键在于使用循环和辅助的...
通过以上分析,我们可以看到,阿克曼函数的非递归实现主要涉及堆栈操作、递归转换以及对计算复杂性的理解。这个话题对于学习数据结构和算法的学生来说,是一个挑战性的实践项目,有助于提升他们的编程技能和对复杂...
快速选择算法是基于快速排序的一种高效选择算法,用于在未排序的数据集合中找到第k小(或第k大)的元素。它由C.A.R. Hoare在1960年提出,是线性时间复杂度的算法,在平均情况下表现优秀。在本主题中,我们将深入探讨...
快速排序非递归实现的优点包括避免了递归带来的系统栈空间开销,对于大数据量排序更有效。同时,由于使用了栈,其时间复杂度依然保持为O(n log n),在平均情况下表现优秀。但缺点是在最坏的情况下,如果输入数组已经...
根据给定文件的信息,本文将详细介绍二叉树与树之间的转换方法,并且深入探讨树的前序、中序、后序遍历递归与非递归实现方式,以及层次遍历的非递归算法实现。 ### 二叉树与树的转换 在计算机科学中,树是一种常用...
八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码
通过这种方式,我们可以学习如何将递归算法转换为迭代算法,以及如何使用栈来模拟递归过程,这对于理解和优化算法性能至关重要。 总之,非递归的汉诺塔问题C++实现是一种创新的解决方案,它利用数据结构来避免递归...
C语言递归实现逆序程序 C语言初学者必会
### 递归实现字符串逆序 #### 知识点概览 本文将详细介绍如何使用C++中的递归技术来实现字符串的逆序操作。逆序字符串是一个常见的编程问题,在多种场景下都有应用,例如文本处理、算法设计等。通过递归方法解决此...
### Java使用递归实现字符串反转 在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础...
快速排序算法设计与分析总结 二叉树与树的转换前序、后序的递归、非递归算法,层次序的非递归算法的实现 二叉树与树的转换前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现 实现树与...
数据结构,递归实现十进制数转二进制数,C++实现,可多次输入数
递归定义描述了问题如何分解成更小的子问题,而递归基础则是递归停止的条件,防止无限循环。 需要注意的是,递归虽然简洁、优雅,但也有其局限性和缺点。首先,递归会占用更多的内存,因为每次函数调用都会在内存栈...
使用C++非递归实现fibonacci数列,对正在学习算法的同学应该挺有帮助的
### 递归实现字符串反向输出 在计算机科学领域,递归是一种常用且重要的编程技巧。本文将通过一个具体的例子——使用C语言实现字符串的反向输出,来深入理解递归的基本概念及其应用。 #### 一、递归基础 递归...
递归实现元素全排列