java中金额元转万元工具类的实例

这篇文章主要介绍了java中金额元转万元工具类的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,大家还是直接看代码吧~

public static void main(String[] args) { // 具体的金额(单位元) String value = "88000067898"; BigDecimal bigDecimal = new BigDecimal(value); // 转换为万元(除以10000) BigDecimal decimal = bigDecimal.divide(new BigDecimal("10000")); // 保留两位小数 DecimalFormat formater = new DecimalFormat("0"); // 四舍五入 formater.setRoundingMode(RoundingMode.HALF_UP); // 格式化完成之后得出结果 String formatNum = formater.format(decimal); System.out.println(formatNum); } /**元转万元且四舍五入取整*/ public static String getNumberWan(String value) { BigDecimal bigDecimal = new BigDecimal(value); // 转换为万元(除以10000) BigDecimal decimal = bigDecimal.divide(new BigDecimal("10000")); // 保留两位小数 DecimalFormat formater = new DecimalFormat("0"); // 四舍五入 formater.setRoundingMode(RoundingMode.HALF_UP); // 格式化完成之后得出结果 String rs = formater.format(decimal); return rs; } /**元转万元且保留两位小数并四舍五入*/ public static String getNumberWanTwo(String value) { BigDecimal bigDecimal = new BigDecimal(value); // 转换为万元(除以10000) BigDecimal decimal = bigDecimal.divide(new BigDecimal("10000")); // 保留两位小数 DecimalFormat formater = new DecimalFormat("0"); // 四舍五入 formater.setRoundingMode(RoundingMode.HALF_UP); // 格式化完成之后得出结果 String rs = formater.format(decimal); return rs; }

补充:用java实现将金额由数字转为中文的数字金额

一个金额由数字转为中文的数字金额

例如:

123123.12转为壹拾贰万叁仟壹佰贰拾叁元壹角贰分

由于是从开发过程中代码直接copy过来的,有一部分可以忽略,新人刚刚工作,写的不好,请多指正

import java.util.Scanner; public class Test { //数字单位 private static final String[] NUMBERS_UNITS= {"拾","佰","仟","万"}; public static void main(String[] args) { Test st=new test(); Scanner scanner=new Scanner(system.in); System.out.println("请输入金额:"); //获取前端传递过来的金额数字 String money=scanner.nextLine(); //1.判断是否为null st.isNull(money); //2.判断是否有非法字符 st.isIllegal(money); //3.判断是否超过限额 String[] array=st.isBeyondMax(money); //4.整数位字符转换 StringBuffer chineseInt=st.convertInt(array[0]); //5.判断有无小数位 if(array.length==2) { //6.有则进行小数位字符转换 StringBuffer chineseDec=st.convertDec(array[1]); //7.拼接整数和小数位 chineseInt=chineseInt.append(chineseDec); } //8.将转为大写的金额设置回总线 System.out.println(chineseInt); } /** * 将小数位的金额数字转化为中文大写 * @param string 金额数字 * @return 转为中文的金额数字 */ private StringBuffer convertDec(String string) { StringBuffer str=convert(string); switch(str.length()) { case 1: str.append("角"); break; case 2: str.append("分"); str.insert(1, "角"); break; } return str; } /** * 将整数位的金额数字对应转化为中文大写 * @param string 金额数字 * @return 转为中文的金额数字 */ private StringBuffer convertInt(String string) { StringBuffer str=convert(string); int length=str.length()-1; for (int i = 0,j=str.length()-1; i 9 || (array.length>1 &&array[1].length()>2)) { //抛出异常 } return array; } }

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...