public
class Change {
publicstatic
void main(String agrs[]) {
System.out.println(digitUppercase(0));
System.out.println(digitUppercase(123));
System.out.println(digitUppercase(1000000));
System.out.println(digitUppercase(100000001));
System.out.println(digitUppercase(1000000000));
System.out.println(digitUppercase(1234567890));
System.out.println(digitUppercase(1001100101));
System.out.println(digitUppercase(110101010));
System.out.println(digitUppercase(0.12));
System.out.println(digitUppercase(123.34));
System.out.println(digitUppercase(1000000.56));
System.out.println(digitUppercase(100000001.78));
System.out.println(digitUppercase(1000000000.90));
System.out.println(digitUppercase(1234567890.03));
System.out.println(digitUppercase(1001100101.00));
System.out.println(digitUppercase(110101010.10));
System.out.println(digitUppercase(-0.12));
System.out.println(digitUppercase(-123.34));
System.out.println(digitUppercase(-1000000.56));
System.out.println(digitUppercase(-100000001.78));
System.out.println(digitUppercase(-1000000000.90));
System.out.println(digitUppercase(-1234567890.03));
System.out.println(digitUppercase(-1001100101.00));
System.out.println(digitUppercase(-110101010.10));
}
/**
* 数字金额大写转换,思想先写个完整的然后将如零拾替换成零
* 要用到正则表达式
*/
publicstatic
String digitUppercase(doublen){
String fraction[] = {"角","分"};
String digit[] = {"零",
"壹","贰",
"叁","肆",
"伍","陆",
"柒","捌",
"玖"};
String unit[][] = {{"元","万",
"亿"},
{"","拾",
"佰","仟"}};
String head = n <0?
"负":"";
n = Math.abs(n);
String s ="";
for(int
i = 0; i < fraction.length; i++) {
s += (digit[(int)(Math.floor(n *10
* Math.pow(10, i)) %10)] + fraction[i]).replaceAll("(零.)+","");
}
if(s.length()<1){
s ="整";
}
intintegerPart = (int)Math.floor(n);
for(int
i = 0; i < unit[0].length && integerPart >0;
i++) {
String p ="";
for(int
j = 0; j < unit[1].length && n >0; j++)
{
p = digit[integerPart%10]+unit[1][j]
+ p;
integerPart = integerPart/10;
}
s = p.replaceAll("(零.)*零$","").replaceAll("^$","零")
+ unit[0][i] + s;
}
returnhead + s.replaceAll("(零.)*零元","元").replaceFirst("(零.)+","").replaceAll("(零.)+","零").replaceAll("^整$","零元整");
}
}
前段:
-
var DX = function (num) {
-
- var strOutput = "";
var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分'; num += "00"; var intPos = num.indexOf('.'); if (intPos >= 0) num = num.substring(0, intPos) + num.substr(intPos + 1, 2); strUnit = strUnit.substr(strUnit.length - num.length); for (var i=0; i < num.length; i++) strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i,1),1) + strUnit.substr(i,1); return strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, "零元"); };