1. /**
  2. * 人民币转成大写 hangeToBig
  3. *
  4. * @param value
  5. * @return String
  6. */
  7. public static String 人民币转成大写(double value) {
  8. char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示
  9. char[] vunit = { '万', '亿' }; // 段名表示
  10. char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示
  11. long midVal = (long) (value * 100); // 转化成整形
  12. String valStr = String.valueOf(midVal); // 转化成字符串
  13.  
  14. String head = valStr.substring(0, valStr.length() - 2); // 取整数部分
  15. String rail = valStr.substring(valStr.length() - 2); // 取小数部分
  16.  
  17. String prefix = ""; // 整数部分转化的结果
  18. String suffix = ""; // 小数部分转化的结果
  19. // 处理小数点后面的数
  20. if (rail.equals("00")) { // 如果小数部分为0
  21. suffix = "整";
  22. } else {
  23. suffix = digit[rail.charAt(0) - '0'] + "角"
  24. + digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来
  25. }
  26. // 处理小数点前面的数
  27. char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
  28. char zero = '0'; // 标志'0'表示出现过0
  29. byte zeroSerNum = 0; // 连续出现0的次数
  30. for (int i = 0; i < chDig.length; i++) { // 循环处理每个数字
  31. int idx = (chDig.length - i - 1) % 4; // 取段内位置
  32. int vidx = (chDig.length - i - 1) / 4; // 取段位置
  33. if (chDig[i] == '0') { // 如果当前字符是0
  34. zeroSerNum++; // 连续0次数递增
  35. if (zero == '0') { // 标志
  36. zero = digit[0];
  37. } else if (idx == 0 && vidx > 0 && zeroSerNum < 4) {
  38. prefix += vunit[vidx - 1];
  39. zero = '0';
  40. }
  41. continue;
  42. }
  43. zeroSerNum = 0; // 连续0次数清零
  44. if (zero != '0') { // 如果标志不为0,则加上,例如万,亿什么的
  45. prefix += zero;
  46. zero = '0';
  47. }
  48. prefix += digit[chDig[i] - '0']; // 转化该数字表示
  49. if (idx > 0)
  50. prefix += hunit[idx - 1];
  51. if (idx == 0 && vidx > 0) {
  52. prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿
  53. }
  54. }
  55.  
  56. if (prefix.length() > 0)
  57. prefix += '圆'; // 如果整数部分存在,则有圆的字样
  58. return prefix + suffix; // 返回正确表示
  59. }

Java-人民币转成大写的更多相关文章

  1. C# 人民币转成大写

    /// <summary> /// 转换人民币大小金额 /// </summary> /// <param name="num">金额</ ...

  2. C#小写数字金额转换成大写人民币金额的算法

    C#小写数字金额转换成大写人民币金额的算法 第一种方法: using System.Text.RegularExpressions;//首先引入命名空间 private string DaXie(st ...

  3. Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  4. android 设置字体颜色、EditText自己主动输入转换成大写字母的多种方式

    在TextView上面设置某一个字的字体颜色为指定颜色时,能够通过java类SpannableString类和Html语言来实现. (一)SpannableString类方式 private void ...

  5. Scanner方式输入小写字母转换成大写字母

    import java.util.Scanner; /**  * 小写字母转换成大写字母      * @author zzu119  *  */ public class letterTransfe ...

  6. php人民币小写转大写函数,不限长度,精确到分

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ustb80.blog.51cto.com/6139482/1035327 在打印 ...

  7. java代码打包成jar以及转换为exe

    教你如何把java代码打包成jar文件以及转换为exe可执行文件 1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有 ...

  8. AC日记——将字符串中的小写字母换成大写字母 openjudge 1.7 13

    13:将字符串中的小写字母转换成大写字母 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个字符串,将其中所有的小写字母转换成大写字母. 输入 输入一行,包含一个字符串(长度不 ...

  9. Myeclipse中把java代码导成UML类图

    Myeclipse中把java代码导成UML类图 1.右键点击项目名称,选择New-------àUML2 Model 2.给类图命名 3.导成类图 1)如果要把整个项目导成类图,则把整个项目拖到类图 ...

随机推荐

  1. codeforces 711D D. Directed Roads(dfs)

    题目链接: D. Directed Roads time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  2. Google Map API 使用总结

    Google Map API (一):显示一个最基本的地图 1 实现一个地图:<head>中引用: <script type="text/javascript" ...

  3. UVALive 6656 Watching the Kangaroo --二分

    题意:给你一些区间,再查询一些点,问这些点与所有区间形成的最小距离的最大值.最小距离定义为:如果点在区间内,那么最小距离为0,否则为min(pos-L[i],R[i]-pos). 解法:当然要排个序, ...

  4. java 14 -1 正则表达式

    正则表达式:符合一定规则的字符串. 1.判断QQ号码是否正确的案例: public class RegexDemo2 { public static void main(String[] args) ...

  5. View (五)自定义View的实现方法

    一些接触Android不久的朋友对自定义View都有一丝畏惧感,总感觉这是一个比较高级的技术,但其实自定义View并不复杂,有时候只需要简单几行代码就可以完成了. 如果说要按类型来划分的话,自定义Vi ...

  6. 百度BAE环境下WordPress搭建过程

    参考: 文章一:http://capbone.com/bae-wordpress/ 文章二:http://tieba.baidu.com/p/2612184581 注意点: wordpress 下载地 ...

  7. Android View.onMeasure方法的理解

    View在屏幕上显示出来要先经过measure(计算)和layout(布局).1.什么时候调用onMeasure方法? 当控件的父元素正要放置该控件时调用.父元素会问子控件一个问题,“你想要用多大地方 ...

  8. C#进阶系列——WebApi身份认证解决方案:Basic基础认证 (转)

    http://www.cnblogs.com/landeanfen/p/5287064.html 前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人 ...

  9. puer工具的使用

    在项目开发的过程当中,总会有前端开发快完成,后端接口却迟迟提供不了的情况.此时为了不影响前端开发的进度,我们可以借助puer来模拟后端接口测试.简单的说,puer就是一个可以实时刷新的前端服务器.具体 ...

  10. initWithNibName&initWithCoder &awakeFromNib&UIView常见属性方法

    第一.initWithNibName这个方法是在controller的类在IB中创建,但是通过Xcode实例化controller的时候用的. 第 二.initWithCoder 是一个类在IB中创建 ...