【求助】将人民币小写转化成大写 例如: 1111 转化成 壹仟壹佰壹拾壹圆发票上的那种大写。求助求助。求代码。QQ 22708387 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //转换小写的金额至大写 public string AmountInCapitalCN(decimal amount) { if (amount == decimal.Parse("0.00")) { string capstr = "零"; return capstr; } else { string capstr, capstr1 = "", capstr2 = "", x1, x2, x3, x4, x5; if (amount == 0) return ""; x1 = amount.ToString("0.00"); x2 = x1.Substring(0, x1.Length - 3); x3 = x1.Substring(x1.Length - 2); if (x3 == "00") capstr2 = "整"; else { capstr2 = DigitToCapitalCN(x3.Substring(1, 1), "分"); if (capstr2 == "零") capstr2 = "整"; capstr2 = DigitToCapitalCN(x3.Substring(0, 1), "角") + capstr2; } for (int i = 0; i < x2.Length; i++) { switch (i) { case 0: x5 = ""; break; case 1: x5 = "拾"; break; case 2: x5 = "佰"; break; case 3: x5 = "仟"; break; case 4: x5 = "万"; break; case 5: if (capstr1.IndexOf("万") == -1) x5 = "拾万"; else x5 = "拾"; break; case 6: if (capstr1.IndexOf("万") == -1) x5 = "佰万"; else x5 = "佰"; break; case 7: if (capstr1.IndexOf("万") == -1) x5 = "仟万"; else x5 = "仟"; break; case 8: x5 = "亿"; break; case 9: if (capstr1.IndexOf("亿") == -1) x5 = "拾亿"; else x5 = "拾"; break; case 10: if (capstr1.IndexOf("亿") == -1) x5 = "佰亿"; else x5 = "佰"; break; case 11: if (capstr1.IndexOf("亿") == -1) x5 = "仟亿"; else x5 = "仟"; break; case 12: if (capstr1.IndexOf("亿") == -1) x5 = "万亿"; else x5 = "万"; break; default: x5 = "金额溢出!"; break; } capstr1 = DigitToCapitalCN(x2.Substring(x2.Length - 1 - i, 1), x5) + capstr1; } if ((capstr1.Substring(capstr1.Length - 1, 1) == "零") & (capstr2 != "整")) x4 = "元零"; else x4 = "元"; capstr1 = RemoveDupeZero(capstr1); if (capstr1 == "") x4 = ""; capstr = capstr1 + x4 + capstr2; capstr = RemoveDupeZero(capstr); //if (currency.Length > 0) x5 = currency.Trim(); else x5 = ""; //switch (x5) //{ // case "CNY": // x5 = "人民币"; // break; // case "USD": // x5 = "美元"; // break; // case "EUR": // x5 = "欧元"; // break; // case "JPY": // x5 = "日元"; // break; // default: // x5 = ""; // break; //} //return x5 + capstr; return capstr; } } private string DigitToCapitalCN(string digit, string cur) { string capdig; switch (digit) { case "0": capdig = "零"; break; case "1": capdig = "壹" + cur; break; case "2": capdig = "贰" + cur; break; case "3": capdig = "叁" + cur; break; case "4": capdig = "肆" + cur; break; case "5": capdig = "伍" + cur; break; case "6": capdig = "陆" + cur; break; case "7": capdig = "柒" + cur; break; case "8": capdig = "捌" + cur; break; case "9": capdig = "玖" + cur; break; default: capdig = ""; break; }; return capdig; } private string RemoveDupeZero(string source) { string result = ""; bool flag = false; foreach (char c in source) { if (c != '零') { result += c; flag = true; } else { if (flag) { result += '零'; flag = false; } } } return result.Trim('零'); } sql server版本 java版本 oracle 版本 这个地址都有:http://topic.csdn.net/u/20080710/23/26d80087-f027-4051-81c4-28e5b97de432.html 用C#实现人民币的小写转大写http://blog.csdn.net/lxjhb/article/details/648874 using System;using System.Text.RegularExpressions;class Program{ // 把阿拉伯数字的金额转换为中文大写数字 static string ConvertToChinese(double x) { string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A"); string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}"); return Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); }); } static void Main() { Random r = new Random(); for (int i = 0; i < 10; i++) { double x = r.Next() / 100.0; Console.WriteLine("{0,14:N2}: {1}", x, ConvertToChinese(x)); } }}/* 可能的输出: 5,607,400.68: 伍佰陆拾萬柒仟肆佰元陆角捌分 2,017,723.33: 贰佰零壹萬柒仟柒佰贰拾叁元叁角叁分 751,181.17: 柒拾伍萬壹仟壹佰捌拾壹元壹角柒分 7,849,851.53: 柒佰捌拾肆萬玖仟捌佰伍拾壹元伍角叁分 2,629,143.90: 贰佰陆拾贰萬玖仟壹佰肆拾叁元玖角 13,461,629.68: 壹仟叁佰肆拾陆萬壹仟陆佰贰拾玖元陆角捌分 4,594,391.16: 肆佰伍拾玖萬肆仟叁佰玖拾壹元壹角陆分 13,046,560.60: 壹仟叁佰零肆萬陆仟伍佰陆拾元陆角 13,041,371.21: 壹仟叁佰零肆萬壹仟叁佰柒拾壹元贰角壹分 20,639,609.44: 贰仟零陆拾叁萬玖仟陆佰零玖元肆角肆分*/ 主要代码string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A"); string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}"); return Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); }); http://download.csdn.net/detail/yyz985/3784392 /// <summary> /// 转换人民币大小金额 /// </summary> /// <param name="num">金额 </param> /// <returns>返回大写形式 </returns> public static string CmycurD(decimal num) { string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字 string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字 string str3 = ""; //从原num值中取出的值 string str4 = ""; //数字的字符串形式 string str5 = ""; //人民币大写金额形式 int i; //循环变量 int j; //num的值乘以100的字符串长度 string ch1 = ""; //数字的汉语读法 string ch2 = ""; //数字位的汉字读法 int nzero = 0; //用来计算连续的零值是几个 int temp; //从原num值中取出的值 num = Math.Round(Math.Abs(num), 2); //将num取绝对值并四舍五入取2位小数 str4 = ((long)(num * 100)).ToString(); //将num乘100并转换成字符串形式 j = str4.Length; //找出最高位 if (j > 15) { return "溢出"; } str2 = str2.Substring(15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 //循环取出每一位需要转换的值 for (i = 0; i < j; i++) { str3 = str4.Substring(i, 1); //取出需转换的某一位的值 temp = Convert.ToInt32(str3); //转换为数字 if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15)) { //当所取位数不为元、万、亿、万亿上的数字时 if (str3 == "0") { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } } } else { //该位是万亿,亿,万,元位等关键位 if (str3 != "0" && nzero != 0) { ch1 = "零" + str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 != "0" && nzero == 0) { ch1 = str1.Substring(temp * 1, 1); ch2 = str2.Substring(i, 1); nzero = 0; } else { if (str3 == "0" && nzero >= 3) { ch1 = ""; ch2 = ""; nzero = nzero + 1; } else { if (j >= 11) { ch1 = ""; nzero = nzero + 1; } else { ch1 = ""; ch2 = str2.Substring(i, 1); nzero = nzero + 1; } } } } } if (i == (j - 11) || i == (j - 3)) { //如果该位是亿位或元位,则必须写上 ch2 = str2.Substring(i, 1); } str5 = str5 + ch1 + ch2; if (i == j - 1 && str3 == "0") { //最后一位(分)为0时,加上“整” str5 = str5 + '整'; } } if (num == 0) { str5 = "零元整"; } return str5; } /**/ /// <summary> /// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num) /// </summary> /// <param name="num">用户输入的金额,字符串形式未转成decimal </param> /// <returns> </returns> public static string CmycurD(string numstr) { try { decimal num = Convert.ToDecimal(numstr); return CmycurD(num); } catch { return "非数字形式!"; } } 参考public string GetMoney(double dd) { string s = dd.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A"); string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}"); string value = Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); }); return value; } 不知道来迟没?public static string GetStrByMoney(double ToMoney) { long m0, m1, m2, m3, m4, m5, m6, m7, m8, temp; temp = (long)(ToMoney * 100); m0 = temp % 1000000000 / 100000000; //十万。 m1 = temp % 100000000 / 10000000; //十万。 m2 = temp % 10000000 / 1000000; //万。 m3 = temp % 1000000 / 100000; //千 m4 = temp % 100000 / 10000; //百 m5 = temp % 10000 / 1000; //十 m6 = temp % 1000 / 100; //元 m7 = temp % 100 / 10; //角 m8 = temp % 10; //分 char c0, c1, c2, c3, c4, c5, c6, c7, c8; c0 = transe(m0); c1 = transe(m1); c2 = transe(m2); c3 = transe(m3); c4 = transe(m4); c5 = transe(m5); c6 = transe(m6); c7 = transe(m7); c8 = transe(m8); String str = ""; if (m0 != 0) { str += c0 + "百"; } if (m1 != 0) { str += c1 + "十"; } if (m2 != 0) { str += c2 + "万"; } if ((m0 != 0 || m1 != 0) && m2 == 0) { str += "万"; } if (m3 != 0) { str += c3 + "千"; } if (m4 != 0) { str += c4 + "百"; } if (m3 != 0 && m4 == 0 && (m5 != 0 || m6 != 0)) { str += "零"; } if (m5 != 0) { str += c5 + "十"; } if (m4 != 0 && m5 == 0 && m6 != 0) { str += "零"; } if (m6 != 0) { str += c6; } str += "元"; if (m7 == 0 && m8 == 0) { str += "整"; } if (m7 != 0) { str += c7 + "角"; } if (m7 == 0 && m8 != 0) { str += "零"; } if (m8 != 0) { str += c8 + "分"; } return str; } public static char transe(long m) { char r = ' '; switch (m) { case 0: r = '零'; break; case 1: r = '壹'; break; case 2: r = '贰'; break; case 3: r = '叁'; break; case 4: r = '肆'; break; case 5: r = '伍'; break; case 6: r = '陆'; break; case 7: r = '柒'; break; case 8: r = '捌'; break; case 9: r = '玖'; break; } return r; } aspx.cs中的字符赋值问题 asp.net关于用户重复登录的一个经典问题! 请教大师换算百分比显示的问题 Web Part不能拖拉的问题 高手帮忙看看:如何把csv文件导入到dataSet中 问一个三层结构的问题。。。懂三层以的人。。进来一下。。。。。。。。言之有理就有分。。。。。。大家来讨论一下。。 网站不能访问 加急,如何计算登录用户在一个网页的停留时长? 为什么这样也出错 怎样可在用c#代码写一些javascript到<head>和</head>之间 请教一条sql语句 “/”应用程序中的服务器错误
//转换小写的金额至大写
public string AmountInCapitalCN(decimal amount)
{
if (amount == decimal.Parse("0.00"))
{
string capstr = "零";
return capstr;
}
else
{
string capstr, capstr1 = "", capstr2 = "", x1, x2, x3, x4, x5;
if (amount == 0) return "";
x1 = amount.ToString("0.00");
x2 = x1.Substring(0, x1.Length - 3);
x3 = x1.Substring(x1.Length - 2);
if (x3 == "00") capstr2 = "整";
else
{
capstr2 = DigitToCapitalCN(x3.Substring(1, 1), "分");
if (capstr2 == "零") capstr2 = "整";
capstr2 = DigitToCapitalCN(x3.Substring(0, 1), "角") + capstr2;
}
for (int i = 0; i < x2.Length; i++)
{
switch (i)
{
case 0:
x5 = "";
break;
case 1:
x5 = "拾";
break;
case 2:
x5 = "佰";
break;
case 3:
x5 = "仟";
break;
case 4:
x5 = "万";
break;
case 5:
if (capstr1.IndexOf("万") == -1) x5 = "拾万"; else x5 = "拾";
break;
case 6:
if (capstr1.IndexOf("万") == -1) x5 = "佰万"; else x5 = "佰";
break;
case 7:
if (capstr1.IndexOf("万") == -1) x5 = "仟万"; else x5 = "仟";
break;
case 8:
x5 = "亿";
break;
case 9:
if (capstr1.IndexOf("亿") == -1) x5 = "拾亿"; else x5 = "拾";
break;
case 10:
if (capstr1.IndexOf("亿") == -1) x5 = "佰亿"; else x5 = "佰";
break;
case 11:
if (capstr1.IndexOf("亿") == -1) x5 = "仟亿"; else x5 = "仟";
break;
case 12:
if (capstr1.IndexOf("亿") == -1) x5 = "万亿"; else x5 = "万";
break;
default:
x5 = "金额溢出!";
break;
}
capstr1 = DigitToCapitalCN(x2.Substring(x2.Length - 1 - i, 1), x5) + capstr1; }
if ((capstr1.Substring(capstr1.Length - 1, 1) == "零") & (capstr2 != "整")) x4 = "元零"; else x4 = "元";
capstr1 = RemoveDupeZero(capstr1);
if (capstr1 == "") x4 = "";
capstr = capstr1 + x4 + capstr2;
capstr = RemoveDupeZero(capstr);
//if (currency.Length > 0) x5 = currency.Trim(); else x5 = "";
//switch (x5)
//{
// case "CNY":
// x5 = "人民币";
// break;
// case "USD":
// x5 = "美元";
// break;
// case "EUR":
// x5 = "欧元";
// break;
// case "JPY":
// x5 = "日元";
// break;
// default:
// x5 = "";
// break;
//}
//return x5 + capstr;
return capstr;
} } private string DigitToCapitalCN(string digit, string cur)
{
string capdig;
switch (digit)
{
case "0":
capdig = "零";
break;
case "1":
capdig = "壹" + cur;
break;
case "2":
capdig = "贰" + cur;
break;
case "3":
capdig = "叁" + cur;
break;
case "4":
capdig = "肆" + cur;
break;
case "5":
capdig = "伍" + cur;
break;
case "6":
capdig = "陆" + cur;
break;
case "7":
capdig = "柒" + cur;
break;
case "8":
capdig = "捌" + cur;
break;
case "9":
capdig = "玖" + cur;
break;
default:
capdig = "";
break;
};
return capdig;
}
private string RemoveDupeZero(string source)
{
string result = "";
bool flag = false;
foreach (char c in source)
{
if (c != '零')
{
result += c;
flag = true;
}
else
{
if (flag)
{
result += '零';
flag = false;
}
}
}
return result.Trim('零');
}
http://topic.csdn.net/u/20080710/23/26d80087-f027-4051-81c4-28e5b97de432.html
using System;
using System.Text.RegularExpressions;class Program
{
// 把阿拉伯数字的金额转换为中文大写数字
static string ConvertToChinese(double x)
{
string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
return Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
} static void Main()
{
Random r = new Random();
for (int i = 0; i < 10; i++)
{
double x = r.Next() / 100.0;
Console.WriteLine("{0,14:N2}: {1}", x, ConvertToChinese(x));
}
}
}
/* 可能的输出:
5,607,400.68: 伍佰陆拾萬柒仟肆佰元陆角捌分
2,017,723.33: 贰佰零壹萬柒仟柒佰贰拾叁元叁角叁分
751,181.17: 柒拾伍萬壹仟壹佰捌拾壹元壹角柒分
7,849,851.53: 柒佰捌拾肆萬玖仟捌佰伍拾壹元伍角叁分
2,629,143.90: 贰佰陆拾贰萬玖仟壹佰肆拾叁元玖角
13,461,629.68: 壹仟叁佰肆拾陆萬壹仟陆佰贰拾玖元陆角捌分
4,594,391.16: 肆佰伍拾玖萬肆仟叁佰玖拾壹元壹角陆分
13,046,560.60: 壹仟叁佰零肆萬陆仟伍佰陆拾元陆角
13,041,371.21: 壹仟叁佰零肆萬壹仟叁佰柒拾壹元贰角壹分
20,639,609.44: 贰仟零陆拾叁萬玖仟陆佰零玖元肆角肆分
*/
string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
return Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
/// <summary>
/// 转换人民币大小金额
/// </summary>
/// <param name="num">金额 </param>
/// <returns>返回大写形式 </returns>
public static string CmycurD(decimal num)
{
string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字
string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字
string str3 = ""; //从原num值中取出的值
string str4 = ""; //数字的字符串形式
string str5 = ""; //人民币大写金额形式
int i; //循环变量
int j; //num的值乘以100的字符串长度
string ch1 = ""; //数字的汉语读法
string ch2 = ""; //数字位的汉字读法
int nzero = 0; //用来计算连续的零值是几个
int temp; //从原num值中取出的值 num = Math.Round(Math.Abs(num), 2); //将num取绝对值并四舍五入取2位小数
str4 = ((long)(num * 100)).ToString(); //将num乘100并转换成字符串形式
j = str4.Length; //找出最高位
if (j > 15) { return "溢出"; }
str2 = str2.Substring(15 - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 //循环取出每一位需要转换的值
for (i = 0; i < j; i++)
{
str3 = str4.Substring(i, 1); //取出需转换的某一位的值
temp = Convert.ToInt32(str3); //转换为数字
if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15))
{
//当所取位数不为元、万、亿、万亿上的数字时
if (str3 == "0")
{
ch1 = "";
ch2 = "";
nzero = nzero + 1;
}
else
{
if (str3 != "0" && nzero != 0)
{
ch1 = "零" + str1.Substring(temp * 1, 1);
ch2 = str2.Substring(i, 1);
nzero = 0;
}
else
{
ch1 = str1.Substring(temp * 1, 1);
ch2 = str2.Substring(i, 1);
nzero = 0;
}
}
}
else
{
//该位是万亿,亿,万,元位等关键位
if (str3 != "0" && nzero != 0)
{
ch1 = "零" + str1.Substring(temp * 1, 1);
ch2 = str2.Substring(i, 1);
nzero = 0;
}
else
{
if (str3 != "0" && nzero == 0)
{
ch1 = str1.Substring(temp * 1, 1);
ch2 = str2.Substring(i, 1);
nzero = 0;
}
else
{
if (str3 == "0" && nzero >= 3)
{
ch1 = "";
ch2 = "";
nzero = nzero + 1;
}
else
{
if (j >= 11)
{
ch1 = "";
nzero = nzero + 1;
}
else
{
ch1 = "";
ch2 = str2.Substring(i, 1);
nzero = nzero + 1;
}
}
}
}
}
if (i == (j - 11) || i == (j - 3))
{
//如果该位是亿位或元位,则必须写上
ch2 = str2.Substring(i, 1);
}
str5 = str5 + ch1 + ch2; if (i == j - 1 && str3 == "0")
{
//最后一位(分)为0时,加上“整”
str5 = str5 + '整';
}
}
if (num == 0)
{
str5 = "零元整";
}
return str5;
} /**/
/// <summary>
/// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num)
/// </summary>
/// <param name="num">用户输入的金额,字符串形式未转成decimal </param>
/// <returns> </returns>
public static string CmycurD(string numstr)
{
try
{
decimal num = Convert.ToDecimal(numstr);
return CmycurD(num);
}
catch
{
return "非数字形式!";
}
}
{
string s = dd.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
string value = Regex.Replace(d, ".", delegate(Match m)
{ return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
return value;
}
public static string GetStrByMoney(double ToMoney)
{
long m0, m1, m2, m3, m4, m5, m6, m7, m8, temp; temp = (long)(ToMoney * 100);
m0 = temp % 1000000000 / 100000000; //十万。
m1 = temp % 100000000 / 10000000; //十万。
m2 = temp % 10000000 / 1000000; //万。
m3 = temp % 1000000 / 100000; //千
m4 = temp % 100000 / 10000; //百
m5 = temp % 10000 / 1000; //十
m6 = temp % 1000 / 100; //元
m7 = temp % 100 / 10; //角
m8 = temp % 10; //分 char c0, c1, c2, c3, c4, c5, c6, c7, c8; c0 = transe(m0);
c1 = transe(m1);
c2 = transe(m2);
c3 = transe(m3);
c4 = transe(m4);
c5 = transe(m5);
c6 = transe(m6);
c7 = transe(m7);
c8 = transe(m8);
String str = "";
if (m0 != 0)
{
str += c0 + "百";
}
if (m1 != 0)
{
str += c1 + "十";
}
if (m2 != 0)
{
str += c2 + "万";
}
if ((m0 != 0 || m1 != 0) && m2 == 0)
{
str += "万";
}
if (m3 != 0)
{
str += c3 + "千";
}
if (m4 != 0)
{
str += c4 + "百";
}
if (m3 != 0 && m4 == 0 && (m5 != 0 || m6 != 0))
{
str += "零";
}
if (m5 != 0)
{
str += c5 + "十";
}
if (m4 != 0 && m5 == 0 && m6 != 0)
{
str += "零";
}
if (m6 != 0)
{
str += c6;
}
str += "元";
if (m7 == 0 && m8 == 0)
{
str += "整";
}
if (m7 != 0)
{
str += c7 + "角";
}
if (m7 == 0 && m8 != 0)
{
str += "零";
}
if (m8 != 0)
{
str += c8 + "分";
}
return str;
} public static char transe(long m)
{
char r = ' ';
switch (m)
{
case 0:
r = '零';
break;
case 1:
r = '壹';
break;
case 2:
r = '贰';
break;
case 3:
r = '叁';
break;
case 4:
r = '肆';
break;
case 5:
r = '伍';
break;
case 6:
r = '陆';
break;
case 7:
r = '柒';
break;
case 8:
r = '捌';
break;
case 9:
r = '玖';
break; }
return r;
}