Java 实现金额小写转大写

话不多说,放码出来。。。

package oracleTestProject;import java.text.DecimalFormat;public class MyTest2020040501 {public static void main(String[] args) throws Exception {try {String str = numberToChinese(3123214.70);System.out.println(str);} catch (Exception e) {e.printStackTrace();}}public static String numberToChinese(double paramDouble) {DecimalFormat localDecimalFormat = new DecimalFormat("############0.00");String str1 = localDecimalFormat.format(paramDouble);int i = str1.indexOf(".");if (str1.substring(i).compareTo(".00") == 0) {//如果小数位全是0,直接截掉小数点和小数位数字str1 = str1.substring(0, i);}String IntStr = "";//整数位字符串String[] arrayOfString1 = new String[4];String[] arrayOfString2 = new String[4];String[] arrayOfString3 = new String[2];String[] NumberOfChinese = new String[10];String str3 = "";String str4 = "";//小数位字符串String sChineseStr = "";//返回大写金额字符串String sYuan = "元";String sZheng = "整";int j = 0;int k = 0;int m = 0;arrayOfString1[0] = "";arrayOfString1[1] = "拾";arrayOfString1[2] = "佰";arrayOfString1[3] = "仟";arrayOfString2[0] = "";arrayOfString2[1] = "万";arrayOfString2[2] = "亿";arrayOfString2[3] = "万";arrayOfString3[0] = "分";arrayOfString3[1] = "角";NumberOfChinese[0] = "零";NumberOfChinese[1] = "壹";NumberOfChinese[2] = "贰";NumberOfChinese[3] = "叁";NumberOfChinese[4] = "肆";NumberOfChinese[5] = "伍";NumberOfChinese[6] = "陆";NumberOfChinese[7] = "柒";NumberOfChinese[8] = "捌";NumberOfChinese[9] = "玖";//小数位整数位都为0,返回零元整if ((str1.compareTo("0") == 0) || (str1.compareTo("0.0") == 0) || (str1.compareTo("0.00") == 0)) {sChineseStr = NumberOfChinese[0] + sYuan + sZheng;return sChineseStr;}if (str1.indexOf(".") > 0){//整数位小数位都不为0的IntStr = str1.substring(0, str1.indexOf("."));//Instr='123214'}else{//整数位不为0小数位为0IntStr = str1;}/******************************整数位转换计算开始******************************///四位一份,        j = IntStr.length() % 4 != 0 ? IntStr.length() / 4 + 1 : IntStr.length() / 4;int i1;for (int n = j; n >= 1; n--) {if ((n == j) && (IntStr.length() % 4 != 0)){m = IntStr.length() % 4;}else{m = 4;}str3 = IntStr.substring(k, k + m);for (i1 = 0; i1 < str3.length(); i1++) {int inum = Integer.parseInt(str3.substring(i1, i1 + 1));if (inum != 0) {sChineseStr = sChineseStr + NumberOfChinese[inum] + arrayOfString1[(str3.length() - i1 - 1)];}else if ((i1 + 1 < str3.length()) && (str3.charAt(i1 + 1) != '0')){sChineseStr = sChineseStr + NumberOfChinese[0];}}k += m;if (n < j)  {if ((Integer.parseInt(str3.substring(str3.length() - 1, str3.length())) != 0) || (Integer.parseInt(str3.substring(str3.length() - 2, str3.length() - 1)) != 0) || (Integer.parseInt(str3.substring(str3.length() - 3, str3.length() - 2)) != 0) || (Integer.parseInt(str3.substring(str3.length() - 4, str3.length() - 3)) != 0)){sChineseStr = sChineseStr + arrayOfString2[(n - 1)];}}else sChineseStr = sChineseStr + arrayOfString2[(n - 1)];}if (sChineseStr.length() > 0) {sChineseStr = sChineseStr + sYuan;}/***********************整数位转换计算结束*************************************//***********************小数位转换计算开始*************************************/if (str1.indexOf(".") > 0) {//还存在小数位,说明小数位有非0数字str4 = str1.substring(str1.indexOf(".") + 1);for (i1 = 0; i1 < 2; i1++) {//存在小数位则有两位,int inum = Integer.parseInt(str4.substring(i1, i1 + 1));if (inum != 0) {sChineseStr = sChineseStr + NumberOfChinese[inum] + arrayOfString3[(1 - i1)];} else if (sChineseStr.length() > 0)sChineseStr = sChineseStr + NumberOfChinese[0];}} else {sChineseStr = sChineseStr + sZheng;}/***********************小数位转换计算结束*************************************//**去掉最后一个零(最后一位是零说明str1有小数位且百分位为0,即有效金额位数到角,没有分后面需要加上“整”)**/if (NumberOfChinese[0].equals(sChineseStr.substring(sChineseStr.length() - 1))){sChineseStr = sChineseStr.substring(0, sChineseStr.length() - 1) + sZheng;}return sChineseStr;}
}

实现效果:

如有不妥之处欢迎指正,感谢支持!

Java笔记——Java 实现金额小写转大写相关推荐

  1. Oracle实现金额小写转大写函数

    Oracle实现金额小写转大写函数 今天工作的时候遇到了,于是上网百度了一下,发现了有个大佬写了一个很牛的函数,在此记录下来. 原文:http://www.itpub.net/thread-24028 ...

  2. jQuery金额小写转大写

    jQuery金额小写转大写 金额转换 金额转换 /*金额小写转大写*/ function smalltoBIG(n) {var fraction = ['角', '分'];var digit = [' ...

  3. Java笔记-Java日常笔记-Java核心语言-史上最全Java笔记-Java烂笔头-实时更新(~v~)

    阿一的日常Java笔记,实时更新,有什么问题可以留言交流一下,大家一起共同进步!!! 1.Java基础 1.1.基本语法 1.1.1.关键字 ​ 定义:被java赋予特殊含义的字符串(单词): ​ 关 ...

  4. Java笔记——Java多线程~

    多线程 内容来自博客~ 理解线程与进程 进程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程:进程也是程序的一次执行过程,是系统运行程序的基本单位 ...

  5. java金额小写转大写(8.2)

    import java.util.*;public class Main {private final static String[] STR_DAXIE = { "零", &qu ...

  6. Java 描述将数字金额转换为中文大写

    Java 描述金额转换(数字转换成中文大写)         解题思路:把每一位转换成对应的大写,然后在不足地方补零,最后加上相应单位. 代码如下: import java.util.Scanner; ...

  7. java访问控制度_菜鸡的Java笔记 - java 访问控制权限

    java中四种访问控制权限的使用 内容 在java里面一共定义有四个权限,按照由小到大的顺序:private 那么这四种访问控制权限的特点如下 NO 范围 private defaule protec ...

  8. think in java i o_5.[Think in Java笔记]Java IO系统

    1.输入输出 InputStream和OutputStream是面向字节的,Reader和Write则面向字符的且兼容Unicode. InputStream类型 ByteArrayInputStre ...

  9. Excel中金额小写转大写,职场小技能,值得学习

    点赞再看,养成习惯:圣人千虑,必有一失. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Ex ...

  10. java笔记——Java常用类

    目录 目录 Java常用类目标 1.1内部类 1.2成员内部类 1.3静态内部类 1.4匿名内部类 2.Object类 2.1getClass()方法 2.2hasCode() 2.3toString ...

最新文章

  1. macOS完全卸载Android Studio方法
  2. 腾讯动漫爬虫与动态随机加载反爬破解技术实战
  3. 个人信息泄露,背后竟有“内鬼”作祟,堵上网络安全漏洞
  4. gitlab介绍、安装及gitlab CI、与jenkins的对比
  5. C#中Marshal 类的内存操作的一般功能概述
  6. R-CNN , Fast R-CNN , Faster R-CNN原理及区别
  7. 【动态规划】数字金字塔
  8. java swing jdk_javax.swing
  9. 理解 Hook 规则
  10. Windows系统管理和网络服务笔记生涯 源于BENET2.0课程(S2)
  11. 从《网管员必读》系列丛书获奖看读者的真正需求——成功原因分析(一)
  12. Nginx配置文件的配置说明
  13. 自己做的一个水印生成类
  14. 液压泵优化设计matlab,基于MATLAB/Simulink的挖掘机动力匹配技术的转速传感变量系统设计...
  15. 何谓差模信号?何谓共模信号?
  16. Unity Metaverse(二)、Mixamo Animator 混合树与动画融合
  17. VM ware安装Cent OS系统并配置静态IP
  18. Python数据采集和分析告诉你为何上海的二手房你都买不起!
  19. Android 主题资源风格定制 1
  20. Java代理模式:(二)代理模式

热门文章

  1. java给word表格追加行_Java 使用Spire.Cloud.Word给Word文档添加表格
  2. Android隐藏app应用图标(隐式启动)
  3. 《逆流而上+阿里巴巴技术成长之路》 免费电子版
  4. HTTP 状态码,404,301,505网络状态码详细说明
  5. 苦橙花---不喧哗,自有声
  6. 乔布斯斯坦福大学演讲英文原文
  7. 论文后面的参考文献格式应该如何写
  8. 关于神经网络中隐藏层和神经元的深入理解
  9. 国际电脑使用执照(ICDL)考试
  10. 利用iTextsharp进行PDF页码旋转