该代码片段提供了一个名为`MoneyToChinese`的公共方法,用于将十进制数字格式的金额转换为中文大写表示。这个功能适用于.NET环境下的C#编程,主要关注于处理正负数和小数部分的转换。以下是该函数的核心逻辑和步骤: 1. **输入处理**: 函数接受一个字符串参数`LowerMoney`,该参数表示原始的金额(可能是带小数点或前导零的形式)。首先检查是否为负数,如果是,则去掉负号并将`IsNegative`标志设为`true`。 2. **数值格式化**: - 将`LowerMoney`转换为浮点数并四舍五入到两位小数,确保金额精确。 - 如果原金额末尾只有一个`.`,则在后面添加一个`0`,以确保小数点后至少有一个数字。 - 如果原金额没有小数,自动添加`00`作为小数部分。 3. **分段处理**: - 将处理后的金额字符串`strLower`按字符长度逐个提取,通过`switch`语句匹配每个字符到对应的中文大写数字或符号。 - 对于小数点(`.`),转换为中文“Բ”;对于非0数字(1-9),转换为对应的中文大写字符( `'Ҽ'`对应'壹'、'贰'、'叁'等)。 4. **构建结果**: - 初始化一个空字符串`strUpper`来存储转换后的中文大写金额。 - 使用`while`循环遍历`strLower`,每次取一段字符进行转换,并将结果添加到`strUpper`中。 5. **返回值**: - 函数最终返回转换后的中文大写金额字符串`strUpper`。如果原金额是负数,会在前面加上“负”。 这个函数简化了金额大写的转换过程,适合个人或小型项目中使用,但可能不包括所有货币单位(如元、角、分)的处理。在实际应用中,可能需要根据具体需求扩展此功能,例如处理不同的货币单位、金额范围限制等。
------------------格式:壹仟伍佰圆整-------或者-------壹仟伍佰壹拾伍圆柒角捌分
/// <summary>
/// 金额转大写
/// </summary>
/// <param name="LowerMoney"></param>
/// <returns></returns>
public string MoneyToChinese(string LowerMoney)
{
string functionReturnValue = null;
bool IsNegative = false; // 是否是负数
if (LowerMoney.Trim().Substring(0, 1) == "-")
{
// 是负数则先转为正数
LowerMoney = LowerMoney.Trim().Remove(0, 1);
IsNegative = true;
}
string strLower = null;
string strUpart = null;
string strUpper = null;
int iTemp = 0;
// 保留两位小数 123.489→123.49 123.4→123.4
LowerMoney = Math.Round(double.Parse(LowerMoney), 2).ToString();
if (LowerMoney.IndexOf(".") > 0)
{
if (LowerMoney.IndexOf(".") == LowerMoney.Length - 2)
{
LowerMoney = LowerMoney + "0";
}
}
{
LowerMoney = LowerMoney + ".00";
}
strLower = LowerMoney;
iTemp = 1;
strUpper = "";
while (iTemp <= strLower.Length)
{
switch (strLower.Substring(strLower.Length - iTemp, 1))
{
case ".":
strUpart = "圆";
break;
case "0":
strUpart = "零";
break;
case "1":
strUpart = "壹";
break;
case "2":
strUpart = "贰";
break;
case "3":
strUpart = "叁";
break;
case "4":
strUpart = "肆";
break;
case "5":
剩余6页未读,继续阅读
- 粉丝: 1
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦