public static void main(String[] args) {moneyConversion mc=new moneyConversion();String money="3412341324234.15166624";//输入的数字必须包含小数点,也可以子设置不包含小数点mc.setMoney(money);System.out.println(money+"转换成大写为:"+mc.getMoney());}
package com.ssm.model;//小写金额转换层大写金额的javaBean
public class moneyConversion {private String money;       //转换之前的数字金额private String submoneyCN[]={"","拾","佰","仟"};                                   //表示数字位数的数组private String numberCNN[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};   //大写数字的数组private String je="零壹贰叁肆伍陆柒捌玖";     //大写的数字(0-9)private String cdw="万仟佰拾亿仟佰拾万仟佰拾元角分";   //金额单位public moneyConversion(){}      //默认的构造方法public void setMoney(String money){this.money=money;}public String getMoney(){return convert(this.money);}/*** 转换数字金额为大写金额* @return 返回转换后的大写金额*/public String convert(String money){String formatCN="";                   //最终的输出值int point=money.indexOf(".");             //判断字符串是否包含小数点if(point!=-1){String money1=money.substring(0,point); //小数点之前的部分String money1_1=(new StringBuffer(money1).reverse()).toString();//字符串倒序String money2=money.substring(point+1); //小数点之后的部分if(money2.length()<2){                  //如果小数点后的部分少于两位,用"0"补齐if(money2.length()==0){money2="00";}else{money2+="0";}}else{money2=money.substring(point+1,point+3);//如果小数点后的位数大于2位,则只取前2位}int len = money1_1.length();            //字符串反转之后,小数点之前的字符位数int pos=len-1;String sigle="";boolean allhavenum=false;boolean havenum=false;boolean mark=false;                     //设置一个开关变量,若当前数为"0",将该值设为true;不为"0"时设为false/**以下代码为读出小数点左面的部分*/while(pos>=0){sigle=money1_1.substring(pos,pos+1);//截取1位数字,比如数字1234.56,将左侧的字符串反转,值为4321,则截取的值为1/**读取“亿单元”的代码。* 假设读取10024531042.34。* 小数点左面反转后为:24013542001* pos的初始值为10* mark的初始值为false* havenum的初始值为false* */if(pos>=8 && pos<12){ if(!sigle.equals("0")){          //如果当前值不为"0"if(!mark){                   //如果当前值的前一位数不为"0"formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];}else{                       //如果当前值不为"0",但该值的前一位数为"0"if(allhavenum){          //如果在当前值之前有不为"0"的数字出现。该条件用来处理用户输入的如:0012.34的数值formatCN+="零";}formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];mark=false;}havenum=true;allhavenum=true;            //变量allhavenum表示小数点左面的数中是否有不为"0"的数字;true表示有,false表示无}else{                              //如果当前值为"0"mark=true;}if(pos%4==0&&havenum){          //如果当前数字为该单元的最后一位,并且该单元中有不为"0"的数字出现formatCN+="亿";havenum=false;}}/**读取“万单元”的代码*/             if(pos>=4 && pos<8){if(!sigle.equals("0")){if(!mark){formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];}else{if(allhavenum){formatCN+="零";}formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];mark=false;}havenum=true;allhavenum=true;}else{mark=true;}if(pos%4==0&&havenum){ formatCN+="万";havenum=false;}}/**读取“个、十、百、千”的代码*/if(pos>=0 && pos<4){if(!sigle.equals("0")){        if(!mark)formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];else{ if(allhavenum){formatCN+="零";}formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];mark=false;       }havenum=true;allhavenum=true;}else{mark=true;}}pos--;          }/**碰到小数点时的读法*/      if(allhavenum)        //如:00.34就不能读为:元3角4分.变量allhavenum表示小数点左面的内容中是否有数字出现formatCN+="元";else                 //如果小数点左面的部分都为0如:00.34应读为:零元3角4分formatCN="零元";/**以下代码为读出小数点右面的部分 */       if(money2.equals("00"))formatCN+="整";else{/**读出角,如120.34读为:1佰2拾元零3角4分;123.04读为:1佰2拾3元零4分*/if(money2.startsWith("0")||(allhavenum&&money1.endsWith("0"))){ formatCN+="零";}if(!money2.startsWith("0")){formatCN+=numberCNN[Integer.parseInt(money2.substring(0,1))]+"角";}//读出分,如:12.30读1拾2元3角零分formatCN+=numberCNN[Integer.parseInt(money2.substring(1))]+"分";}}else{formatCN="输入的格式不正确!格式:888.00";}return formatCN;}
}

使用javabean把小写金额转换成大写金额相关推荐

  1. 工具篇——MoneyFormatUtil(用于将人民币小写金额转换成大写金额)

    写代码的四点: 1.明确需求.要做什么? 2.分析思路.要怎么做?(1,2,3--) 3.确定步骤.每一个思路要用到哪些语句.方法和对象. 4.代码实现.用具体的语言代码将思路实现出来. 学习新技术的 ...

  2. PB中小写金额转换成大写金额(发票类型)

    PB中小写金额转换成大写金额 //================================================================= // 功能:小写金额转换成大写金额 ...

  3. Java工具包:小写金额转换成大写金额

    源代码如下 package com.jian.stringUtil;/*** 工具类:小写金额转换成大写金额* * @author jianxuanbing* */ @SuppressWarnings ...

  4. 小写金额转换成大写金额的函数

    编写一个收费软件时要用到一个小写金额转换成大写金额的函数,我曾在网上找到一个用Powerbuilder写的函数,长达四五十行之巨,后来我自己用DELPHI写了一个函数,寥寥几行代码就搞定: funct ...

  5. 将小写金额转换成大写金额[存储过程版]

    CREATE FUNCTION FAtoC /* 金额阿拉伯数字转换为中文的自定义函数 */ ( @ChangeMoney Money ) RETURNS VarChar(100) AS BEGIN ...

  6. win7计算机名改成大写,图文解读win7系统excel数字小写金额转换成汉字大写金额的措施...

    有很多网友在使用电脑的过程总难免会遇到win7系统excel数字小写金额转换成汉字大写金额的情况.针对win7系统excel数字小写金额转换成汉字大写金额的问题,我给大家整理总结了详细的解决步骤.近日 ...

  7. 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...

    大家好,我是小秋,近期一段时间比较忙,没有在今日头条上更新原创文章了.希望朋友们多多见谅,下面与大家分享一个Excel实用小技巧:如何设置单元格格式将小写金额转换成大写? 1.应用场景 在报销单.收据 ...

  8. 阿拉伯数字小写金额转换成中文大写金C额程序说明

    阿拉伯数字小写金额转换成中文大写金额C程序说明 1.问题的提出 寒假帮同学交缴话费时,不经意间看到收据上同时有小写金额和大写金额,想想各种各样的票据诸如缴费收据.银行业务回单.商场销售凭证.专用发票等 ...

  9. [python]数字金额转换成大写金额

    最近开始负责单位的测绘合同草拟和签订,所以打算用python-docx来制作模板,减少自己的工作量.因为合同中有金额的大写内容,所以做了一个转换的函数. 因为行业内几乎签不了上亿的合同,所以函数只能转 ...

最新文章

  1. 2万人同时访问 nodejs_Nodejs 与 Python 的使用对比
  2. Netty聊天之发送图片
  3. python跳出if条件_python的if条件判断
  4. Android之让图片匀速旋转效果
  5. LVS学习笔记之三种模式的特点概括
  6. sqlsever无法重新启动计算机,SQLServer 2008安装提示需要重启计算机,但是重启还是不通过解决方案...
  7. Oracle iops升高查看,一则简单的磁盘的iops测试
  8. python asyncio tcp server_关于 asyncio 创建多个 tcp 连接,线程数不准确的问题
  9. 格拉布斯离群值检验——理论与 Python 实现
  10. java sharepoint_java调用sharepoint webservice
  11. Android上的APP图标常见尺寸规范
  12. 智能人体感应灯,微波雷达存在感应,智能照明技术方案
  13. buildroot_buildroot-我对多平台发行版创作的经验
  14. 手把手教你用EZDML批量生成vue-element-admin前端页面代码
  15. 冒险岛2无限服务器断开,冒险岛2无限龙无限命版
  16. 解决苹果无线鼠标、键盘或触控板无法被 Mac 识别的方法
  17. 【技巧】word交叉引用
  18. 照片透明背景抠图怎么做?试试这几种抠图方法
  19. shc加密(仅仅对shell脚本加密)
  20. 电气工程及其自动化专业英语复习

热门文章

  1. 【C#】【Unity】第三人称摄像机跟随人物移动时碰撞到墙壁等,摄像机不穿越墙壁
  2. AVI视频格式分析-封装格式
  3. 计算机的维修有两种,两个汽车电脑维修案例 你未必会修
  4. 嵌入式技术基础与实践(第三版)笔记
  5. 二分类函数(机器学习)
  6. python实现数据库的增删改查
  7. 办公室设计公司关于办公室装修全过程解剖
  8. 网络核心交换机和普通交换机有什么区别?
  9. 华为服务器rh-2286远程控制无法使用
  10. python爬虫需要哪些基础知识-【PYTHON】【爬虫】关于python爬虫的一些基础知识