java中金额元转万元工具类的实例
我就废话不多说了,大家还是直接看代码吧~
publicstaticvoidmain(String[]args){
//具体的金额(单位元)
Stringvalue="88000067898";
BigDecimalbigDecimal=newBigDecimal(value);
//转换为万元(除以10000)
BigDecimaldecimal=bigDecimal.divide(newBigDecimal("10000"));
//保留两位小数
DecimalFormatformater=newDecimalFormat("0");
//四舍五入
formater.setRoundingMode(RoundingMode.HALF_UP);
//格式化完成之后得出结果
StringformatNum=formater.format(decimal);
System.out.println(formatNum);
}
/**元转万元且四舍五入取整*/
publicstaticStringgetNumberWan(Stringvalue){
BigDecimalbigDecimal=newBigDecimal(value);
//转换为万元(除以10000)
BigDecimaldecimal=bigDecimal.divide(newBigDecimal("10000"));
//保留两位小数
DecimalFormatformater=newDecimalFormat("0");
//四舍五入
formater.setRoundingMode(RoundingMode.HALF_UP);
//格式化完成之后得出结果
Stringrs=formater.format(decimal);
returnrs;
}
/**元转万元且保留两位小数并四舍五入*/
publicstaticStringgetNumberWanTwo(Stringvalue){
BigDecimalbigDecimal=newBigDecimal(value);
//转换为万元(除以10000)
BigDecimaldecimal=bigDecimal.divide(newBigDecimal("10000"));
//保留两位小数
DecimalFormatformater=newDecimalFormat("0");
//四舍五入
formater.setRoundingMode(RoundingMode.HALF_UP);
//格式化完成之后得出结果
Stringrs=formater.format(decimal);
returnrs;
}
补充:用java实现将金额由数字转为中文的数字金额
写一个金额由数字转为中文的数字金额
例如:
123123.12转为壹拾贰万叁仟壹佰贰拾叁元壹角贰分
由于是从开发过程中代码直接copy过来的,有一部分可以忽略,新人刚刚工作,写的不好,请多指正
importjava.util.Scanner;
publicclassTest{
//数字单位
privatestaticfinalString[]NUMBERS_UNITS={"拾","佰","仟","万"};
publicstaticvoidmain(String[]args){
Testst=newTest();
Scannerscanner=newScanner(System.in);
System.out.println("请输入金额:");
//获取前端传递过来的金额数字
Stringmoney=scanner.nextLine();
//1.判断是否为null
st.isNull(money);
//2.判断是否有非法字符
st.isIllegal(money);
//3.判断是否超过限额
String[]array=st.isBeyondMax(money);
//4.整数位字符转换
StringBufferchineseInt=st.convertInt(array[0]);
//5.判断有无小数位
if(array.length==2){
//6.有则进行小数位字符转换
StringBufferchineseDec=st.convertDec(array[1]);
//7.拼接整数和小数位
chineseInt=chineseInt.append(chineseDec);
}
//8.将转为大写的金额设置回总线
System.out.println(chineseInt);
}
/**
*将小数位的金额数字转化为中文大写
*@paramstring金额数字
*@return转为中文的金额数字
*/
privateStringBufferconvertDec(Stringstring){
StringBufferstr=convert(string);
switch(str.length()){
case1:
str.append("角");
break;
case2:
str.append("分");
str.insert(1,"角");
break;
}
returnstr;
}
/**
*将整数位的金额数字对应转化为中文大写
*@paramstring金额数字
*@return转为中文的金额数字
*/
privateStringBufferconvertInt(Stringstring){
StringBufferstr=convert(string);
intlength=str.length()-1;
for(inti=0,j=str.length()-1;i9||(array.length>1&&array[1].length()>2)){
//抛出异常
}
returnarray;
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。