110,533
社区成员
发帖
与我相关
我的任务
分享
//替换上面的方法
public string NumToStr(int num, int type)
{
if (type == 1)
{
//调用数字转大写的类
转大写的类 类 = new 转大写的类();
string str = 类.NumToChn(num.ToString());
return str + "、";
}
else if (type == 2)
{
//调用数字转大写的类
转大写的类 类 = new 转大写的类();
string str = 类.NumToChn(num.ToString());
return "(" + str + ")、";
}
else if (type == 3)
{
return num.ToString() + "、";
}
else if (type == 4)
{
return "(" + num.ToString() + ")、";
}
}
//一个数字转大写的类
public class Money
{
public Money()
{
//
// TODO: Add constructor logic here
//
}
private char 转换数字(char x)
{
string stringChnNames = "零一二三四五六七八九";
string stringNumNames = "0123456789";
return stringChnNames[stringNumNames.IndexOf(x)];
}
private string 转换万以下整数(string x)
{
string[] stringArrayLevelNames = new string[4] { "", "十", "百", "千" };
string ret = "";
int i;
for (i = x.Length - 1; i >= 0; i--)
if (x[i] == '0')
ret = 转换数字(x[i]) + ret;
else
ret = 转换数字(x[i]) + stringArrayLevelNames[x.Length - 1 - i] + ret;
while ((i = ret.IndexOf("零零")) != -1)
ret = ret.Remove(i, 1);
if (ret[ret.Length - 1] == '零' && ret.Length > 1)
ret = ret.Remove(ret.Length - 1, 1);
if (ret.Length >= 2 && ret.Substring(0, 2) == "一十")
ret = ret.Remove(0, 1);
return ret;
}
private string 转换整数(string x)
{
int len = x.Length;
string ret, temp;
if (len <= 4)
ret = 转换万以下整数(x);
else if (len <= 8)
{
ret = 转换万以下整数(x.Substring(0, len - 4)) + "万";
temp = 转换万以下整数(x.Substring(len - 4, 4));
if (temp.IndexOf("千") == -1 && temp != "")
ret += "零" + temp;
else
ret += temp;
}
else
{
ret = 转换万以下整数(x.Substring(0, len - 8)) + "亿";
temp = 转换万以下整数(x.Substring(len - 8, 4));
if (temp.IndexOf("千") == -1 && temp != "")
ret += "零" + temp;
else
ret += temp;
ret += "万";
temp = 转换万以下整数(x.Substring(len - 4, 4));
if (temp.IndexOf("千") == -1 && temp != "")
ret += "零" + temp;
else
ret += temp;
}
int i;
if ((i = ret.IndexOf("零万")) != -1)
ret = ret.Remove(i + 1, 1);
while ((i = ret.IndexOf("零零")) != -1)
ret = ret.Remove(i, 1);
if (ret[ret.Length - 1] == '零' && ret.Length > 1)
ret = ret.Remove(ret.Length - 1, 1);
return ret;
}
private string 转换小数(string x)
{
string ret = "";
for (int i = 0; i < x.Length; i++)
ret += 转换数字(x[i]);
return ret;
}
public string NumToChn(string x)
{
if (x.Length == 0)
return "";
string ret = "";
if (x[0] == '-')
{
ret = "负";
x = x.Remove(0, 1);
}
if (x[0].ToString() == ".")
x = "0" + x;
if (x[x.Length - 1].ToString() == ".")
x = x.Remove(x.Length - 1, 1);
if (x.IndexOf(".") > -1)
ret += 转换整数(x.Substring(0, x.IndexOf("."))) + "点" + 转换小数(x.Substring(x.IndexOf(".") + 1));
else
ret += 转换整数(x);
return ret;
}
}
if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 2)
{
n1 += 1;
//这里就已经重新开始排序了
n2 = 0;
n3 = 0;
n4 = 0;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n1,1) + dgv.Rows[i].Cells["名称"].Value;
}
public void FormatTo(DataGridView dgv)
{
int n1 = 0;
int n2 = 0;
int n3 = 0;
int n4 = 0;
for (int i = 0; i < dgv.RowCount; i++)
{
if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 2)
{
n1 += 1;
n2 = 0;
n3 = 0;
n4 = 0;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n1,1) + dgv.Rows[i].Cells["名称"].Value;
}
else if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 3)
{
n2 += 1;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n2, 2) + dgv.Rows[i].Cells["名称"].Value;
}
else if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 4)
{
n3 += 1;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n3, 3) + dgv.Rows[i].Cells["名称"].Value;
}
else if (dgv.Rows[i].Cells["代码"].Value.ToString().Length == 5)
{
n4 += 1;
dgv.Rows[i].Cells["名称"].Value = NumToStr(n4, 4) + dgv.Rows[i].Cells["名称"].Value;
}
}
}
public string NumToStr(int num,int type)
{
if (type == 1)
{
string[] str = {"","一","二","三","四","五","六","七","八","九" };
return str[num] + "、";
}
else if (type == 2)
{
string[] str = { "", "(一)", "(二)", "(三)", "(四)", "(五)", "(六)", "(七)", "(八)", "(九)" };
return str[num] + "、";
}
else if (type == 3)
{
string[] str = { "", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
return str[num] + "、";
}
else if (type == 4)
{
string[] str = { "", "(1)", "(2)", "(3)", "(4)", "(5)", "(6)", "(7)", "(8)", "(9)" };
return str[num] + "、";
}
}