财务系统数字转化方法

1、金额若是整数则加个整;

public String splitNum(String s) {
// 如果传入的是空串则继续返回空串
if ("".equals(s)) {
return "";
}
// 以小数点为界分割这个字符串
int index = s.indexOf(".");
// 截取并转换这个数的整数部分
String intOnly = s.substring(0, index);
String part1 = this.numFormat(1, intOnly);
// 截取并转换这个数的小数部分
String smallOnly = s.substring(index + 1);
String part2 = this.numFormat(2, smallOnly);
// 把转换好了的整数部分和小数部分重新拼凑一个新的字符串
String newS = part1 + part2;
if (newS.endsWith("零分")) {
newS = newS.substring(0, newS.length() - 2);
newS = newS + "整";
}
return newS;
}


2、将小数四舍五入;

public String roundString(String s) {
// 如果传入的是空串则继续返回空串
if ("".equals(s)) {
return "";
}
// 将这个数转换成 double 类型,并对其进行四舍五入操作
double d = Double.parseDouble(s);
// 此操作作用在小数点后两位上
if (d > 0) {
d = (d * 100 + 0.5) / 100;
}
// 将 d 进行格式化
s = new java.text.DecimalFormat("##0.000").format(d);
// 以小数点为界分割这个字符串
int index = s.indexOf(".");
// 这个数的整数部分
String intOnly = s.substring(0, index);
// 规定数值的最大长度只能到万亿单位,否则返回 "0"
if (intOnly.length() > 13) {
// System.out.println("输入数据过大!(整数部分最多13位!)");
return "";
}
// 这个数的小数部分
String smallOnly = s.substring(index + 1);
// 如果小数部分大于两位,只截取小数点后两位
if (smallOnly.length() > 2) {
String roundSmall = smallOnly.substring(0, 2);
// 把整数部分和新截取的小数部分重新拼凑这个字符串
s = intOnly + "." + roundSmall;
}
return s;
}


3、将金额转化为大写;

public String numFormat(int flag, String s) {
int sLength = s.length();
// 货币大写形式
String bigLetter[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
// 货币单位
String unit[] = { "元", "拾", "佰", "仟", "万",
// 拾万位到仟万位
"拾", "佰", "仟",
// 亿位到万亿位
"亿", "拾", "佰", "仟", "万" };
String small[] = { "分", "角" };
// 用来存放转换后的新字符串
String newS = "";
// 逐位替换为中文大写形式
for (int i = 0; i < sLength; i++) {
if (flag == 1) {
// 转换整数部分为中文大写形式(带单位)
newS = newS + bigLetter[s.charAt(i) - 48]
+ unit[sLength - i - 1];
} else if (flag == 2) {
// 转换小数部分(带单位)
newS = newS + bigLetter[s.charAt(i) - 48]
+ small[sLength - i - 1];
}
}
return newS;
}


4、数字千分位;

public static String fmtMicrometer(String text) {
DecimalFormat df = null;
df = new DecimalFormat("###,##0.00");
double number = 0.0;
try {
number = Double.parseDouble(text);
} catch (Exception e) {
number = 0.0;
}
return df.format(number);
}


5、清除千分位;

// 清楚千分位方法
public static String parseMicrometer(String text) {
double number = 0.0;
try {
number = new DecimalFormat().parse(text).doubleValue();
} catch (Exception e) {
number = 0.0;
}
return String.valueOf(number);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值