1:将数字变成中文: 如: 10变成 一十 1587 变成一千五百八十七2:两个大位数的数字如何进行加法运算,如:数A(80)位 和数B(70位) ,请用程序来写
解决方案 »
- The SOC Account does not have access to the resource.
- repeater的e.item.dataitem为null问题
- 请教个简单的绑定问题。。
- GridView 用代码如何实现排序?
- 如何制作可以插入图片,又可以修改大小的新闻发布系统?
- 怎么能让DataGrid在编辑的时候不改变大小呢.?
- HyperLink控件问题
- MVC 超链接怎么调用一个 [HttpPost] 的action啊
- 奉献vs.net最新下载地址,要的朋友赶快下,很不错的
- DeBug模式.......待大概1分钟....会强制中断...受不了了~~ 求解
- 如何用asp.net显示其他网页的xml?
- 如何使控件的value=">="?
/// <summary>
/// 将四位阿拉伯数字转化成汉字大写数字,比如'1234' 转化成 '壹仟贰佰叁拾肆'
/// </summary>
/// <param name="num">阿拉伯数字</param>
/// <returns>汉字大写字符</returns>
private static string convertfournumber(string num)
{
int length = num.Length;
//判断是否阿拉伯数字组成的字符串
if (!JudgeNumber(num))
return "";
//字符串长度超过4个,或者为空,都不处理。
if (num.Length > 4 || num.Length < 1)
return "";
//不足四位的前面补零
if (num.Length < 4)
{
num = "0000" + num;
num = num.Substring(num.Length - 4, 4);
}
//特殊情况
if (num == "0000")
return "零";
//临时变量
string result = "";
string temp = "";
string temp1, temp2, temp3;
//处理四位阿拉伯数字
//保留各位字符
temp = num.Substring(0, 1);
temp1 = num.Substring(1, 1);
temp2 = num.Substring(2, 1);
temp3 = num.Substring(3, 1);
//处理千位,为零不处理
if (temp != "0")
result = convertnumtochs(temp) + "仟";
//一起出来十位,百位
if (temp1 != "0" && temp2 != "0") //百位,十位都是非零数字
result = result + convertnumtochs(temp1) + "佰" + convertnumtochs(temp2) + "拾";
else
{
if (temp1 == "0" && temp2 == "0") //百位,十位都为零,但是千位,个位都不为零
{
if (temp != "0" && temp3 != "0")
{
result = result + "零";//补个零
}
if (temp == "0" && temp3 != "0")
{
if (length == 4)
{
result = result + "零";
}
} }
else
{
if (temp1 == "0") //百位为零,十位不为零,千位不为零
{
if (temp != "0")
result = result + "零" + convertnumtochs(temp2) + "拾"; //千位和十位间补零
else
result = result + convertnumtochs(temp2) + "拾"; //千位和十位间补零
}
else//百位不为零,十位为零
{
if (temp3 != "0")//个位不为零
result = result + convertnumtochs(temp1) + "佰" + "零"; //百位和个位间补零
else
result = result + convertnumtochs(temp1) + "佰"; //百位和个位间补零
}
}
}
//处理个位,为零不处理
temp = num.Substring(3, 1);
if (temp != "0")
result = result + convertnumtochs(temp);
//返回值
return result; }
using System;
using System.Collections.Generic;
using System.Text;namespace temp
{
class Program
{
static void Main(string[] args)
{
string a = BigAddition("2545123654125874589656584552565468","3214569874566985521455688758966522322145587");
} private static string BigAddition(string numberA, string numberB)
{
int groupTerm = 4;//默认4位
List<string> jieguo = GetresultList(numberA, numberB, groupTerm);
string ResultString = "";
for (int i = 0; i < jieguo.Count; i++)
{
ResultString += jieguo[jieguo.Count-1 - i];
}
return ResultString;
} private static List<string> GetresultList(string numberA, string numberB, int groupTerm)
{
string[] numberAlist = listisok(numberA, groupTerm);
string[] numberBlist = listisok(numberB, groupTerm);
List<string> jieguo = jisuan(numberAlist, numberBlist);
List<string> zuihoujieguoji = new List<string>();
for (int i = 0; i < jieguo.Count; i++)
{
if (int.Parse(jieguo[i].ToString()) > groupTerm)
{
string fanzhunjieguo = Fanzhuan(jieguo[i].ToString());
string jieguo1;
string shengyujieguo = "0";
if (fanzhunjieguo.Length < groupTerm)
{
jieguo1 = Fanzhuan(fanzhunjieguo.Substring(0));
}
else
{
jieguo1 = Fanzhuan(fanzhunjieguo.Substring(0, groupTerm));
shengyujieguo = Fanzhuan(fanzhunjieguo.Substring(groupTerm));
if (shengyujieguo != null || shengyujieguo == "0")
{
jieguo[i + 1] = (int.Parse(jieguo[i + 1]) + int.Parse(shengyujieguo)).ToString();
}
} zuihoujieguoji.Add(jieguo1);
}
}
return zuihoujieguoji;
}
//计算结果
private static List<string> jisuan(string[] numberAlist, string[] numberBlist)
{
List<string> jieguo = new List<string>();
if (numberAlist.Length > numberBlist.Length)
{
for (int i = 0; i < numberAlist.Length; i++)
{
if (i > numberBlist.Length - 1)
{
jieguo.Add(numberAlist[i].ToString());
}
else
{
int temp = int.Parse(numberAlist[i].ToString()) + int.Parse(numberBlist[i].ToString());
jieguo.Add(temp.ToString());
}
} }
else
{
for (int i = 0; i < numberBlist.Length; i++)
{
if (i > numberAlist.Length - 1)
{
jieguo.Add(numberBlist[i].ToString());
}
else
{
int temp = int.Parse(numberAlist[i].ToString()) + int.Parse(numberBlist[i].ToString());
jieguo.Add(temp.ToString());
}
} }
return jieguo;
} private static string[] listisok(string numberA, int groupTerm)
{
string[] numberAlist = getnewlist(numberA, groupTerm);
int numberAgroup = group(numberA, groupTerm);
for (int i = 0; i < numberAlist.Length; i++)
{
numberAlist[i] = Fanzhuan(numberAlist[i].ToString());
}
return numberAlist;
} private static string[] getnewlist(string number, int groupTerm)
{
//根据条件分组
int numberAgroup = group(number, groupTerm);//数字A分组个数
string[] grouplist = new string[numberAgroup];
//字符串反转
string lingshistring = Fanzhuan(number);
for (int i = 0; i < numberAgroup; i++)
{
if (i < numberAgroup - 1)
grouplist[i] = (lingshistring.Substring(i * groupTerm, groupTerm));
else grouplist[i] = lingshistring.Substring(i * groupTerm);
}
return grouplist;
} private static string Fanzhuan(string number)
{
char[] fanzhuanzhunbei = number.ToCharArray();
Array.Reverse(fanzhuanzhunbei);//反转
string lingshistring = null;
for (int i = 0; i < fanzhuanzhunbei.Length; i++)
{
lingshistring += fanzhuanzhunbei[i];
}
return lingshistring;
} private static int group(string number, int groupTerm) //对数字分组判断
{
int numbergroup;
if (number.Length % groupTerm == 0)
{
numbergroup = number.Length / groupTerm;
}
else numbergroup = number.Length / groupTerm + 1;
return numbergroup;
}
}
}