人民币阿拉伯数字转换成大写,然后角与分数字对不上,请高人解答。

问题描述

publicclassmy_simulate{publicstaticString[]chineseDigits=newString[]{"零","一","二","三","四","五","六","七","八","九"};publicstaticStringamountTochinese(doubleamount){if(amount>99999999999999.99||amount<-99999999999999.99)thrownewIllegalArgumentException("参数值超出允许范围(-99999999999999.99~99999999999999.99)!");booleannegative=false;if(amount<0){negative=true;amount=amount*(-1);}longtemp=Math.round(amount*100);intnumFen=(int)temp%10;temp=temp/10;intnumJiao=(int)temp%10;temp=temp/10;intparts[]=newint[20];intnumParts=0;for(inti=0;;i++){if(temp==0)break;intpart=(int)(temp%10000);parts[i]=part;numParts++;temp=temp/10000;}booleanbeforeWanIsZero=true;StringchineseStr="";for(inti=0;i<numParts;i++){StringpartChinese=partTranslate(parts[i]);if(i%2==0){if("".equals(partChinese))beforeWanIsZero=true;elsebeforeWanIsZero=false;}if(i!=0){if(i%2==0)chineseStr="亿"+chineseStr;else{if("".equals(partChinese)&&!beforeWanIsZero)chineseStr="零"+chineseStr;else{if(parts[i-1]<1000&&parts[i-1]>0)chineseStr="零"+chineseStr;chineseStr="万"+chineseStr;}}}chineseStr=partChinese+chineseStr;}if("".equals(chineseStr))chineseStr=chineseDigits[0];elseif(negative)chineseStr="负"+chineseStr;chineseStr=chineseStr+"元";if(numFen==0&&numJiao==0){chineseStr=chineseStr+"整";}elseif(numFen==0){chineseStr=chineseStr+numJiao+"角";}else{if(numJiao==0)chineseStr=chineseStr+"零"+numFen+"分";elsechineseStr=chineseStr+numJiao+"角"+numFen+"分";}returnchineseStr;}privatestaticStringpartTranslate(intamountPart){if(amountPart<0||amountPart>10000){thrownewIllegalArgumentException("参数必须是大于等于0,小于10000的整数!");}String[]units=newString[]{"","拾","佰","仟"};inttemp=amountPart;StringamountStr=newInteger(amountPart).toString();intamountStrLength=amountStr.length();booleanlastIsZero=true;StringchineseStr="";for(inti=0;i<amountStrLength;i++){if(temp==0)break;intdigit=temp%10;if(digit==0){if(!lastIsZero)chineseStr="零"+chineseStr;lastIsZero=true;}else{chineseStr=chineseDigits[digit]+units[i]+chineseStr;lastIsZero=false;}temp=temp/10;}returnchineseStr;}publicstaticvoidmain(String[]args){if(args.length==0){System.out.println("转换演示:");System.out.println("-------------------------");System.out.println("25000000000005.999:"+amountTochinese(25000000000005.68));System.out.println("445689263.626:"+amountTochinese(45689263.17));System.out.println("0.69457:"+amountTochinese(0.58657));System.out.println("253.0:"+amountTochinese(253.0));System.out.println("0:"+amountTochinese(0));System.out.println("-------------------------");}else{System.out.println("转换结果:");System.out.println(args[0]+":"+amountTochinese(Double.parseDouble(args[0])));}}}

时间: 2024-11-02 13:32:31

人民币阿拉伯数字转换成大写,然后角与分数字对不上,请高人解答。的相关文章

Word2007将阿拉伯数字转换成大写数字方法

  在使用word2007时,我们经常会遇到平一些账目要使用数字大写,而大写数字还有许多人至今都不会写.不过没关系,今天小编来教大家在Word中轻松完成阿拉伯数字和大写数字的转换,你只需要输入阿拉伯数字,然后用Word转换一下,这些阿拉伯数字即可变成大写的数字!一起来看看Word2007将阿拉伯数字转换成大写数字方法吧! ①首先,选中需要转换的数字; Word2007将阿拉伯数字转换成大写数字方法 ②单击菜单栏的"插入"中的"数字"; Word2007将阿拉伯数字转

excel怎么把小写的阿拉伯数字转换成大写

第一种: 如图所示,需要把表格里的数字转换成大写 如图所示 如图,右击鼠标,选择设置单元格格式,点开 出现一个窗口,选择特殊--中文大写数字--确定 结果就出来了 第二种:手动输入法 输入V+需要转换成大写的数字--选择第二行即可 这样就出来了 两种方法其实都差不多,只是相对于来讲,第一种的准确性大的多!看个人喜好吧!

Word2007中如何将阿拉伯数字转换成大写数字?

  在编辑文档的时候,通常会键入一些数字,这些数字虽然在键入的时候比较容易,但是如果是一片相当重要的文档很可能发生数字被篡改的现象,并且在庄重场合下使用阿拉伯数字未免显得有点不正式,其实我们可以很快的将阿拉伯数字转换为大写数字,这样就会避免此类问题的发生了,具体的大家跟着小编一起去看看吧. 操作步骤 1.首先打开Word软件,在里面键入几个数字例如"56214",之后单击"插入"选型卡,在"符号"区域单击"编号"选项组; 2.

word中阿拉伯数字转换成大写汉字

  步骤/方法 首先在word中输入123456 然后选中输入的阿拉伯数字,在菜单栏中点击插入-数字. 弹出数字对话框, 在数字类型中选择中文数字版式"壹.贰.叁-- 然后点击确定.此时就会发现原来写的阿拉伯数字变成大写了. 如果自己事先没有在word中写上阿拉伯数字的话,也可以把光标放到想要插入的数字的地方,然后在进行第二步.弹出数字对话框之后,在数字框里写上你想要填写的内容即可. 然后单击确定 如果想输入其他样式的字符的话,在数字类型中选择即可. 分类: word教程

SQL SERVER函数将人民币数字转换成大写形式

  SQL SERVER函数将人民币数字转换成大写形式 CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5)) RETURNS varchar(100) WITH ENCRYPTION AS BEGIN DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num

将数字转换成大写的人民币表达式的js函数

  将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖&q

将数字转换成大写的人民币表达式的js函数_javascript技巧

将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖&quo

C#实现的【阿拉伯数字转换成中文大写金额】代码

大写|金额|中文|转换 以下C#代码实现了将阿拉伯数字转换成中文大写金额的功能,并Visual Studio.NET 2003 下调试基本通过(未经严格测试,希望各位发现错误后与作者联系fanz2000@sohu.com,或直接在csdn上回帖告知). 代码的主调函数为ConvertSum,它的参数是string类型的数字字符串.在ASP.NET中调用方式如下:Label1.Text=ConvertSum("数字字符串"); 其代码如下: //作者:fanz2000 //Email:f

C#实现将商品金额小写转换成大写的方法_C#教程

本文实例讲述了C#实现将商品金额小写转换成大写的方法.分享给大家供大家参考,具体如下: #region [将商品金额小写转换成大写]MoneySmallToBig /// <summary> /// 将商品金额小写转换成大写 /// </summary> /// <param name="par">小写金额</param> /// <returns>处理后的大写金额</returns> public static