`
caoxiaohui
  • 浏览: 13433 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

金额 中文大写表示 转换方法

    博客分类:
  • java
F# 
阅读更多
/***
  * 金额 中文大写表示 转换方法,
  * 
  * @param input
  *            金额的字符串形式
  * @return
  */
 public static String convertCurrency(String input, String currency)
   throws Exception {
  String s1 = "零壹贰叁肆伍陆柒捌玖";
  String s4 = "分角整元拾佰仟万拾佰仟亿拾佰仟";
  String temp = "";
  String result = "";
  if (input == null) {
   input = "0";
  } else if (input.indexOf('-') == 0) {
   input = input.replaceAll("-", "");
  }
  temp = input.trim();
  float f = Float.parseFloat(temp);
  int len = 0;
  if (temp.indexOf(".") == -1)
   len = temp.length();
  else
   len = temp.indexOf(".");
  if (len > s4.length() - 3)
   return ("输入字串最大只能精确到仟亿,小数点只能两位!");
  int n1, n2 = 0;
  String num = "";
  String unit = "";
  for (int i = 0; i < temp.length(); i++) {
   if (i > len + 2) {
    break;
   }
   if (i == len) {
    continue;
   }
   n1 = Integer.parseInt(String.valueOf(temp.charAt(i)));
   num = s1.substring(n1, n1 + 1);
   n1 = len - i + 2;
   unit = s4.substring(n1, n1 + 1);
   result = result.concat(num).concat(unit);
  }
  if ((len == temp.length()) || (len == temp.length() - 1))
   result = result.concat("整");
  if (len == temp.length() - 2)
   result = result.concat("零分");

  String regex1[] = { "零仟", "零佰", "零拾" };
  String regex2[] = { "零亿", "零万", "零元" };
  String regex3[] = { "亿", "万", "元" };
  String regex4[] = { "零角", "零分" };
  // 第一轮转换把 "零仟", 零佰","零拾"等字符串替换成一个"零"
  for (int i = 0; i < 3; i++) {
   result = result.replaceAll(regex1[i], "零");
  }
  // 第二轮转换考虑 "零亿","零万","零元"等情况
  // "亿","万","元"这些单位有些情况是不能省的,需要保留下来
  for (int i = 0; i < 3; i++) {
   // 当第一轮转换过后有可能有很多个零叠在一起
   // 要把很多个重复的零变成一个零
   result = result.replaceAll("零零零", "零");
   result = result.replaceAll("零零", "零");
   result = result.replaceAll(regex2[i], regex3[i]);
  }
  // 第三轮转换把"零角","零分"字符串省略
  for (int i = 0; i < 2; i++) {
   result = result.replaceAll(regex4[i], "");
  }

  // 对整数部分为零的处理
  if (result.length() > 1 && result.indexOf("元") == 0) {
   result = result.substring(1);
  } else if (result.equals("元")) {
   result = "零元";
  }
  return currency + result;
 }

 

分享到:
评论

相关推荐

    转换汉字金额大写存储过程

    金额转换成大写表示,可直接在服务器端执行,以测试可用,需要用到的朋友可下载

    SQL数字转金额大写函数

    sqlserver数字转金额大写,输入数字返回汉字大写

    人民币数值转中文大写

    商业开票时经常对金额等数值用中文大写表示以防止被人篡改。

    阿拉伯数字金额转换为大写数字金额

    本例子将数字以汉字中的大写数字表示形式显示在页面中。例如“78.79”转换城”“柒拾捌元柒角玖分

    ATM自动取款机&金额转换成大写

    该程序用java语言实现,编译环境Myecilpse,模拟自动取款机,用图形用户界面实现!分别实现:存款,取款,显示余额,修改密码,退出登录,退出系统等功能!并且能够吧交易金额转换成大写表示形式

    C#商品金额大小写转换

    C#商品金额大小写转换,根据输入的阿拉伯数字,转化为中文的汉字,并带上单位输出

    Visual Foxpro小写转大写代码

    是一个自定义函数,将阿拉伯数字表示的金额转换成标准的中文大写。

    用PHP实现小写金额转换大写金额的代码(精确到分)

    复制代码 代码如下: /** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function get_amount($num){ $c1 = “零壹贰叁肆伍陆柒捌玖”;...

    Excel百宝箱9.0无限制破解版.rar

    【小写金额转大写】:将小写金额批量转换成大写 【大写金额转小写】:将大写金额批量转换成小写 【区域数据加密】:对工作表选区的数据进行加密,转换成乱码,有密码才可以查看。 【简体转繁体】:将简体字批量...

    Exce百宝箱——2012版本.rar

    【小写金额转大写】:将小写金额批量转换成大写 【大写金额转小写】:将大写金额批量转换成小写 【区域数据加密】:对工作表选区的数据进行加密,转换成乱码,有密码才可以查看。 【简体转繁体】:将简体字批量转换...

    EXCEL集成工具箱V8.0完整增强版(精简)

    【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...

    EXCEL集成工具箱V6.0

    【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...

    我整理的VBA 自定义函数大全 共138页

    39.金额中文大写转数字 40.把角度转为度秒分、弧度等显示 41.身份证号码侦测 42.显示公式 43.方便财务人员理帐查找 44.数值转换为字符地址 45.字符地址转换为数值 46.等待时间(以秒计算) 47.得到字符串实际的长度...

    Excel函数活用范例大辞典(全新版).何先军.2015-2(带书签高清文字版).pdf

    146 将数字金额转换为人民币大写 298 147 将日期转换为中文大写 301 148 将员工提成工资转换为会计格式 302 149 根据工作年限计算员工年终奖 304 150 快速将数字转换为电话号码格式 306 151 将成本保留...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例062 货币金额大写格式 78 实例063 String类格式化当前日期 80 实例064 字符串大小写转换 82 实例065 字符与Unicode码的转换 83 4.2 辨别字符串 84 实例066 判断用户名是否正确 84 实例067 用户名排序 85 实例068...

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    5.4.7 NUMBERSTRING——将数值转换为大写汉字 178 5.4.8 NUMBERVALUE——以与区域设置无关的方式将文本转换为数字 179 5.4.9 T——将参数转换为文本 179 5.4.10 LOWER——将文本转换为小写 180 5.4.11 UPPER...

    c# 加密和解密相关代码

    Convert 类的ToChar 方法用来将指定的值转换为Unicode 字符,该方法为可重载方法,本实例中用到的它 的重载形式如下: public static char ToChar(int value) 参数说明 value:32 位有符号整数。 返回值:等效于...

Global site tag (gtag.js) - Google Analytics