using System
;
using System
.Collections
.Generic
;
using System
.ComponentModel
;
using System
.Data
;
using System
.Drawing
;
using System
.Linq
;
using System
.Text
;
using System
.Text
.RegularExpressions
;
using System
.Threading
.Tasks
;
using System
.Windows
.Forms
;
namespace MyRMBDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender
, EventArgs e
)
{
}
private void button1_Click(object sender
, EventArgs e
)
{
this.textBox2
.Text
= ConvertToChinese(double.Parse(this.textBox1
.Text
.Trim()));
}
private string ConvertToChinese(double dou
)
{
string[] num
= { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
string[] unit
= { "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾","佰", "仟","兆" };
string d
= dou
.ToString();
string zs
= string.Empty
;
string xs
= string.Empty
;
int i
= d
.IndexOf(".");
string str
= string.Empty
;
if (i
> -1)
{
zs
= d
.Substring(0, i
);
xs
= d
.Substring(i
+ 1, d
.Length
- i
- 1);
str
= "元";
if (xs
.Length
== 1)
str
= str
+ xs
+ "角";
else if (xs
.Length
== 2)
str
= str
+ xs
.Substring(0, 1) + "角" + xs
.Substring(1, 1) + "分";
}
else
{
zs
= d
;
str
= "元整";
}
if (!string.IsNullOrEmpty(zs
))
{
i
= 0;
foreach (char s
in zs
.Reverse())
{
str
= s
.ToString() + unit
[i
] + str
;
i
++;
}
}
for (int m
= 0; m
< 10; m
++)
{
str
= str
.Replace(m
.ToString(), num
[m
]);
}
str
= Regex
.Replace(str
,"[零]+仟","零");
str
= Regex
.Replace(str
, "[零]+佰", "零");
str
= Regex
.Replace(str
, "[零]+拾", "零");
str
= Regex
.Replace(str
, "[零]+亿", "亿");
str
= Regex
.Replace(str
, "[零]+万", "万");
str
= Regex
.Replace(str
, "[零]+", "零");
str
= Regex
.Replace(str
, "亿[万|仟|佰|拾]+", "亿");
str
= Regex
.Replace(str
, "万[仟|佰|拾]+", "万");
str
= Regex
.Replace(str
, "仟[佰|拾]+", "仟");
str
= Regex
.Replace(str
, "佰拾", "佰");
str
= Regex
.Replace(str
, "[零]+元整", "元整");
return str
;
}
private void button2_Click(object sender
, EventArgs e
)
{
this.textBox2
.Text
= ConvertToChinese2(double.Parse(this.textBox1
.Text
.Trim()));
}
private string ConvertToChinese2(double dou
)
{
string s
= dou
.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");
Console
.WriteLine(s
);
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}");
Console
.WriteLine(d
);
string RMB
= "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万亿兆京垓秭穰";
string r
= Regex
.Replace(d
, ".", m
=> RMB
[m
.Value
[0] - '-'].ToString());
if (r
.EndsWith("元"))
r
= r
+ "整";
return r
;
}
private string GetChinese(Match m
)
{
string RMB
= "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万亿兆京垓秭穰";
return RMB
[m
.Value
[0] - '-'].ToString();
}
}
}
转载请注明原文地址: https://mac.8miu.com/read-488983.html