欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java人民币大写 转为 数字,java人民币大写转为,看网上大多都是从数字转钱

来源: javaer 分享于  点击 10408 次 点评:142

java人民币大写 转为 数字,java人民币大写转为,看网上大多都是从数字转钱


看网上大多都是从数字转钱币大写,很少大写转数字的,今天写个,留作备用,针对狗血的double精度,给格式化一下。

Mm.java

package com.smallflow;import java.text.DecimalFormat;public class Mm {  /**   * 转亿以下的   * @param str   * @return   */     public static double b2s(String str){      str=str.replaceAll("零", "");      double sum=0;      int index=str.indexOf("亿");      if (index>0){              String temp=str.substring(0,index );              str=str.substring(index+1);              sum=sum+w(temp)*100000000;      }      index=str.indexOf("万");      if (index>0){          String temp=str.substring(0,index );          str=str.substring(index+1);          sum=sum+w(temp)*10000;      }      index=str.indexOf("元");      if (index>0){          String temp=str.substring(0,index );          str=str.substring(index+1);          sum=sum+w(temp);      }      index=str.indexOf("角");      if (index>0){          String temp=str.substring(0,index );          str=str.substring(index+1);          sum=sum+str2num(temp)*0.1;      }      index=str.indexOf("分");      if (index>0){          String temp=str.substring(0,index );          str=str.substring(index+1);          sum=sum+str2num(temp)*0.01;      }      return sum;  }  /**   * 大写转小写   * @param str   * @return   */  public static int str2num(String str){      String[] daxie={"壹","贰","叁","肆","伍","陆","柒","捌","玖"};      int[] num={1,2,3,4,5,6,7,8,9};      for (int i = 0; i < daxie.length; i++) {            if ( str.equals( daxie[i] ) ) {                 return num[i];            }          }      return 0;  }  /**   * @see 转万以下的   * @param str   * @return   */  public static double w(String str){      double sum=0;      int index=str.indexOf("仟");      if (index>0){          String temp=str.substring(0,index );          str=str.substring(index+1);          sum=sum+str2num(temp)*1000;      }      index=str.indexOf("佰");      if (index>0){          String temp=str.substring(0,index );          str=str.substring(index+1);          sum=sum+str2num(temp)*100;      }      index=str.indexOf("拾");      if (index>0){          String temp=str.substring(0,index );          str=str.substring(index+1);          sum=sum+str2num(temp)*10;      }      if (str.length()>0) {          sum=sum+str2num(str) ;      }      return sum;  }  public static void main(String[] args) {      DecimalFormat df=new DecimalFormat();      df.setMinimumFractionDigits(2);      df.setMaximumFractionDigits(2);     System.out.println(df.format(b2s("壹仟万零伍佰壹拾玖元捌角陆分") )); }}
相关栏目:

用户点评