求一数字转中文的代码

xlg888 2009-03-24 05:33:10
例如:12345 转成:壹万贰千叁百肆十伍
0.23 转成: 零点贰叁
-0.23 负零点贰叁

万亿的时候不能出错
...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生就是赌 2009-03-24
  • 打赏
  • 举报
回复

提供一个转换类

/// <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;
}

cnidb 2009-03-24
  • 打赏
  • 举报
回复
http://www.google.cn/search?hl=zh-CN&q=c%23+%E6%95%B0%E5%AD%97%E8%BD%AC%E4%B8%AD%E6%96%87&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=3&oq=

google一下,好多。
可以参考一下

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧