实例介绍
【实例简介】
人民币转大写
【实例截图】
【核心代码】
public static String ConvertToChinese(double number)//Decimal
{
var r = "";
var s = number.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");
var 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}");
r = Regex.Replace(d, ".", m => "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万亿兆京垓秭穰"[m.Value[0] - '-'].ToString());
if (Regex.IsMatch(number.ToString(), "^([0-9]{1,})$"))
{
return r "整";
}
else return r;
}
//public static string MoneyToCap(string money)
//{
// if (string.IsNullOrEmpty(money))
// {
// return "";
// }
// string s = double.Parse(money).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(); });
//}
//public string NumGetStr(double Num)
//{
// string[] DX_SZ = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾" };//大写数字
// string[] DX_DW = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" };
// string[] DX_XSDS = { "角", "分" };//大些小数单位
// if (Num == 0) return DX_SZ[0];
// Boolean IsXS_bool = false;//是否小数
// string NumStr;//整个数字字符串
// string NumStr_Zs;//整数部分
// string NumSr_Xs = "";//小数部分
// string NumStr_R = "";//返回的字符串
// NumStr = Num.ToString();
// NumStr_Zs = NumStr;
// if (NumStr_Zs.Contains("."))
// {
// NumStr = Math.Round(Num, 2).ToString();
// NumStr_Zs = NumStr.Substring(0, NumStr.IndexOf("."));
// NumSr_Xs = NumStr.Substring((NumStr.IndexOf(".") 1), (NumStr.Length - NumStr.IndexOf(".") - 1));
// IsXS_bool = true;
// }
// int k = 0;
// Boolean IsZeor = false;//整数中间连续0的情况
// for (int i = 0; i < NumStr_Zs.Length; i ) //整数
// {
// int j = int.Parse(NumStr_Zs.Substring(i, 1));
// if (j != 0)
// {
// NumStr_R = DX_SZ[j] DX_DW[NumStr_Zs.Length - i - 1];
// IsZeor = false; //没有连续0
// }
// else if (j == 0)
// {
// k ;
// if (!IsZeor && !(NumStr_Zs.Length == i 1)) //等于0不是最后一位,连续0取一次
// {
// //有问题
// if (NumStr_Zs.Length - i - 1 >= 4 && NumStr_Zs.Length - i - 1 <= 6)
// NumStr_R = DX_DW[4] "零";
// else
// if (NumStr_Zs.Length - i - 1 > 7)
// NumStr_R = DX_DW[8] "零";
// else
// NumStr_R = "零";
// IsZeor = true;
// }
// if (NumStr_Zs.Length == i 1)// 等于0且是最后一位 变成 XX元整
// NumStr_R = DX_DW[NumStr_Zs.Length - i - 1];
// }
// }
// if (NumStr_Zs.Length > 2 && k == NumStr_Zs.Length - 1)
// NumStr_R = NumStr_R.Remove(NumStr_R.IndexOf('零'), 1); //比如1000,10000元整的情况下 去0
// if (!IsXS_bool) return NumStr_R "整"; //如果没有小数就返回
// else
// {
// for (int i = 0; i < NumSr_Xs.Length; i )
// {
// int j = int.Parse(NumSr_Xs.Substring(i, 1));
// NumStr_R = DX_SZ[j] DX_XSDS[i]; //NumSr_Xs.Length - i - 1
// }
// }
// return NumStr_R;
//}
private void button1_Click(object sender, EventArgs e)
{
//将金额小写转换为金额大写
if (this.textBox1.Text.Length < 1)
{
MessageBox.Show(this, "请输入金额小写数字!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (this.textBox1.Text.Length > 17)
{
MessageBox.Show(this, "金额太大!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
double Number = Convert.ToDouble(this.textBox1.Text);
//this.textBox2.Text = MyClass.GetChinese(Number, true);
//this.textBox2.Text = NumGetStr(Number);
this.textBox2.Text = ConvertToChinese(Number);
}
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论