将人民币的数字表示转化成大写表示将人民币的数字表示转化成大写表示
#region 私有成员
///
/// 输入字符串
///
private string inputString=null;
///
/// 输出字符串
///
private string outString=null;
///
/// 提示信息
///
private string noteMessage=null;
#endregion
#region 公共属性
///
/// 输入字符串
///
public string Inp...
将人民币的数字表示转化成大写表示
#region 私有成员
///
/// 输入字符串
///
private string inputString=null;
///
/// 输出字符串
///
private string outString=null;
///
/// 提示信息
///
private string noteMessage=null;
#endregion
#region 公共属性
///
/// 输入字符串
///
public string InputString
{
get { return inputString; }
set { inputString = value; }
}
///
/// 输出字符串
///
public string OutString
{
get { return outString; }
set { outString = value; }
}
///
/// 提示信息
///
public string NoteMessage
{
get { return noteMessage; }
set { noteMessage = value; }
}
#endregion
#region 公共方法
public void ConvertToChineseNum()
{
string numList = "零壹贰叁肆伍陆柒捌玖";
string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
double number = 0;
string tempOutString = null;
try
{
number = double.Parse(this.inputString);
}
catch
{
this.noteMessage = "传入参数非数字~";
return;
}
if (number > 9999999999999.99)
this.noteMessage = "超出范围的人民币值";
//将小数转化为整数字符串
string tempNumberString = Convert.ToInt64(number * 100).ToString();
int tempNmberLength = tempNumberString.Length;
int i = 0;
while (i < tempNmberLength)
{
int oneNumber = Int32.Parse(tempNumberString.Substring(i, 1));
string oneNumberChar = numList.Substring(oneNumber, 1);
string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1, 1);
if (oneNumberChar != "零")
tempOutString += oneNumberChar + oneNumberUnit;
else
{
if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" || oneNumberUnit == "零")
{
while (tempOutString.EndsWith("零"))
{
tempOutString = tempOutString.Substring(0,
tempOutString.Length - 1);
}
}
if (oneNumberUnit == "亿" || (oneNumberUnit == "万"
&& !tempOutString.EndsWith("亿")) || oneNumberUnit == "元")
{
tempOutString += oneNumberUnit;
}
else
{
bool tempEnd = tempOutString.EndsWith("亿");
bool zeroEnd = tempOutString.EndsWith("零");
if (tempOutString.Length > 1)
{
bool zeroStart = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零");
if (!zeroEnd && (zeroStart || !tempEnd))
tempOutString += oneNumberChar;
}
else
{
if (!zeroEnd && !tempEnd)
tempOutString += oneNumberChar;
}
}
}
i += 1;
}
while (tempOutString.EndsWith("零"))
{
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
}
while (tempOutString.EndsWith("元"))
{
tempOutString = tempOutString + "整";
}
this.outString = tempOutString;
}
#endregion
本文档为【将人民币的数字表示转化成大写表示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。