62,267
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 数字转换为人民币大写
/// </summary>
private static string[] cstr ={ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
private static string[] wstr ={ "", "", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟" };
private static string[] xstr ={ "角", "分" };
/// <summary>
/// 数字转换为人民币大写
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ConvertToRMB(string value)
{
bool flag = false;
if (!Regex.IsMatch(value, @"^-?\d{0,11}.?\d{0,2}$", RegexOptions.IgnoreCase))
{
return string.Empty;
}
if (value.StartsWith("-"))
{
flag = true;
value = value.Substring(1);
}
int leftLength = 0, rightLength = 0, strLength = 0, i = 0;
strLength = value.Length;
leftLength = value.IndexOf('.');
string tmpstr = string.Empty, rstr = string.Empty, xrstr = string.Empty, leftStr = string.Empty, rightStr = string.Empty;
if (leftLength > 0)
{
rightLength = strLength - leftLength - 1;
leftStr = value.Substring(0, leftLength);
rightStr = value.Substring(leftLength + 1, rightLength);
for (i = 1; i <= leftLength; i++)
{
tmpstr = leftStr.Substring(leftLength - i, 1);
rstr = string.Concat(cstr[Int32.Parse(tmpstr)] + wstr[i], rstr);
}
rstr = rstr + "圆";
if (rightLength > 0)
{
for (i = 0; i < rightLength; i++)
{
tmpstr = rightStr.Substring(i, 1);
rstr = string.Concat(rstr, cstr[Int32.Parse(tmpstr)] + xstr[i]);
}
}
}
else
{
leftStr = value;
leftLength = value.Length;
for (i = 1; i <= leftLength; i++)
{
tmpstr = leftStr.Substring(leftLength - i, 1);
rstr = string.Concat(cstr[Int32.Parse(tmpstr)] + wstr[i], rstr);
}
}
rstr = rstr.Replace("拾零", "拾");
rstr = rstr.Replace("零拾", "零");
rstr = rstr.Replace("零佰", "零");
rstr = rstr.Replace("零仟", "零");
rstr = rstr.Replace("零萬", "萬");
for (i = 1; i <= 6; i++)
rstr = rstr.Replace("零零", "零");
rstr = rstr.Replace("零萬", "零");
rstr = rstr.Replace("零億", "億");
rstr = rstr.Replace("零零", "零");
rstr += "整";
if (flag)
rstr = "负" + rstr;
return rstr;
}