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 Line();
java switch case string//1.判断是否为null
st.isNull(money);
//2.判断是否有⾮法字符
st.isIllegal(money);
//3.判断是否超过限额
String[] array=st.isBeyondMax(money);
//4.整数位字符转换
StringBuffer vertInt(array[0]);
//5.判断有⽆⼩数位
if(array.length==2) {
//6.有则进⾏⼩数位字符转换
StringBuffer vertDec(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 < length; i++,j--) {
int v=i%4;
System.out.println("i:"+i+" j:"+j+" v:"+v+" "+String()); str.insert(j, NUMBERS_UNITS[v]);
}
str.append("元");
return str;
}
/**
* 循环整个字符串,替换字符
* @param string 要替换的字符串
* @return 替换好的字符
*/
private StringBuffer convert(String string) {
StringBuffer str=new StringBuffer(string);
for (int i = 0; i < str.length(); i++) {
return str;
}
/**
* 将给定的数字字符替换为对应的中⽂数字字符
* @param string 数字字符
* @return 中⽂数字字符
*/
private String replaceCharacter(String string) {
switch(string) {
case "0":
string="零";
break;
case "1":
string="壹";
break;
case "2":
string="贰";
break;
case "3":
string="叁";
break;
case "4":
string="肆";
break;
case "5":
string="伍";
break;
case "6":
string="陆";
break;
case "7":
string="柒";
break;
case "8":
string="捌";
break;
case "9":
string="玖";
break;
}
return string;
}
/**
* 检测传⼊⾦额字符是否为空
* @param money ⾦额字符
*/
private void isNull(String money) {
if(money == null) {
//抛出异常
}
}
/**
* 检测传⼊⾦额字符是否符合条件
* @param money ⾦额字符
*/
private void isIllegal(String money) {
if(!money.matches("\\d+.?\\d*")) {
//抛出异常
}
}
/**
* 检测传⼊⾦额字符是否超出最⼤值
* @param money ⾦额字符
* @return 返回拆分的⾦额数字
*/
private String[] isBeyondMax(String money) {
String[] array=money.split("\\.");
//整数位不能超过9位,⼩数位不能超过2为
if(array[0].length()>9 || (array.length>1 &&array[1].length()>2)) {
//抛出异常
}
return array;
}
}
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论