方法一
方法二
/// <summary> /// Moneys to chinese. /// </summary> /// <param name="lowerMoney">要转换的金额字符数字</param> /// <returns>string</returns> /// <remarks></remarks> public string MoneyToChinese(string lowerMoney) { string functionResultValue = null; bool isNegative = false;//是否为负数 if (lowerMoney.Substring(0,1)=="-") //判断lowerMoney如果为负数 { lowerMoney = lowerMoney.Trim().Remove(0, 1); isNegative = true; } string strLower = null; string strUpart = null; string strUpper = null; int counter = 0; lowerMoney = Math.Round(Convert.ToDecimal(lowerMoney),2).ToString();//四舍五入保留两位小数 if (lowerMoney.IndexOf('.') > 0) //如果是小数 { if (lowerMoney.IndexOf('.') == lowerMoney.Length - 2) //小数点后是一位 { lowerMoney = lowerMoney + "0";//补0 590.6 } } else //不是小数 { lowerMoney = lowerMoney + ".00"; } strLower = lowerMoney; counter = 1; strUpper = ""; while (counter<=strLower.Length) { //从金额的最后一位开始截取 switch (strLower.Substring(strLower.Length-counter,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": strUpart = "伍"; break; case "6": strUpart = "陆"; break; case "7": strUpart = "柒"; break; case "8": strUpart = "捌"; break; case "9": strUpart = "玖"; break; default: break; } switch (counter) { case 1: strUpart = strUpart + "分"; break; case 2: strUpart = strUpart + "角"; break; case 3: strUpart = strUpart + ""; break; case 4: strUpart = strUpart + ""; break; case 5: strUpart = strUpart + "拾"; break; case 6: strUpart = strUpart + "佰"; break; case 7: strUpart = strUpart + "仟"; break; case 8: strUpart = strUpart + "万"; break; case 9: strUpart = strUpart + "拾"; break; case 10: strUpart = strUpart + "佰"; break; case 11: strUpart = strUpart + "仟"; break; case 12: strUpart = strUpart + "亿"; break; case 13: strUpart = strUpart + "拾"; break; case 14: strUpart = strUpart + "佰"; break; case 15: strUpart = strUpart + "仟"; break; case 16: strUpart = strUpart + "万"; break; default: strUpart = strUpart + ""; break; } strUpper = strUpart + strUpper; counter = counter + 1; } //特殊处理 strUpper = strUpper.Replace("零拾", "零"); strUpper = strUpper.Replace("零佰", "零"); strUpper = strUpper.Replace("零仟", "零"); strUpper = strUpper.Replace("零零零", "零"); strUpper = strUpper.Replace("零零", "零"); strUpper = strUpper.Replace("零角零分", "整"); strUpper = strUpper.Replace("零分", "整"); strUpper = strUpper.Replace("零角", "零"); strUpper = strUpper.Replace("零亿零万零圆", "亿圆"); strUpper = strUpper.Replace("零亿零万", "亿"); strUpper = strUpper.Replace("零万零圆", "万圆"); strUpper = strUpper.Replace("万零圆", "万圆"); strUpper = strUpper.Replace("零亿", "亿"); strUpper = strUpper.Replace("零万", "万"); strUpper = strUpper.Replace("零圆", "圆"); //return strUpper; //对壹圆以下金额的处理 if (strUpper.Substring(0,1)=="圆") { strUpper = strUpper.Substring(1, strUpper.Length - 1); } if (strUpper.Substring(0, 1) == "零") { strUpper = strUpper.Substring(1, strUpper.Length - 1); } if (strUpper.Substring(0, 1) == "角") { strUpper = strUpper.Substring(1, strUpper.Length - 1); } if (strUpper.Substring(0, 1) == "分") { strUpper = strUpper.Substring(1, strUpper.Length - 1); } if (strUpper.Substring(0, 1) == "整") { strUpper = "零圆整"; } functionResultValue = strUpper; return functionResultValue; }
方法二
/// <summary> /// 大写金额函数 /// </summary> /// <param name="str">金额</param> /// <param name="nflag">0或1</param> private static void BigWrite(string str, int nflag) { try { if (str == null || str == "") return; string numList = "零壹贰叁肆伍陆柒捌玖"; string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万"; double number = 0; string tempOutString = null; number = double.Parse(str); if (number > 9999999999.99) MessageBox.Show("超出范围的人民币值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //将小数转化为整数字符串 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 + "整"; } if (nflag == 0) { //this.m_GetInterfaceData.SetFieldValue("Finance_PReceipt.Capitalization", tempOutString); MessageBox.Show(tempOutString=tempOutString.Replace("元","美元").Replace("分","美分").Replace("角","")); } } catch (Exception e_edit) { MessageBox.Show(e_edit.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } }
发表评论
-
C# 实现将文件夹分卷压缩
2015-04-17 17:01 1243http://bbs.csdn.net/topics/3907 ... -
C#发送邮件
2015-04-17 15:58 696public class SendEmailHelper ... -
C# xml文件读取
2015-02-11 16:08 648看附件................ -
什么时候该用委托,为什么要用委托,委托有什么好处....
2015-01-29 16:56 819http://www.cnblogs.com/superpce ... -
C#中动态加载和卸载DLL
2015-01-26 14:02 1426在C++中加载和卸载DLL是一件很容易的事,LoadLibra ... -
转:c#常用的18种设计模式
2015-01-21 08:16 779http://blog.jobbole.com/78130/ -
C#委托的介绍(delegate、Action、Func、predicate)
2015-01-09 17:26 1133http://www.cnblogs.com/akwwl/p/ ... -
接口和抽象类有什么区别 .
2014-12-22 16:35 618接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么 ... -
C#一个简单写日志文件的类
2014-12-11 09:57 1113/// <summary> /// L ... -
Linq初级班 Linq to DataSet体验(单表、多表联合查询JOIN语法)
2014-12-10 14:34 356http://www.cnblogs.com/huangcon ... -
C#泛型详解
2014-11-29 11:31 483我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处 ... -
线程同步与异步的区别
2014-11-26 09:12 884异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立 ... -
应用C#和SQLCLR编写SQL Server用户定义函数 .
2013-10-09 17:07 486http://blog.csdn.net/zhzuo/arti ... -
log4Net简介
2013-06-30 11:32 576使用log4Net可以将系统听日志保存到DB、日志文件、邮箱中 ... -
DataGridView历史记录的前进与后退操作
2013-06-23 11:13 1108此功能介绍:DataGridView频繁查询数据时,可以将每次 ... -
c# 对INI配置文件的读取操作
2013-06-17 10:51 678此种方法只对如下格式的INI文件起作用 server=loca ... -
对DataGridView控件的扩展开发
2013-06-15 21:47 2381首先在项目中引用 ... -
对集合控件(ListBox,ComboBox,TreeView,RichTextBox,DataGridView)的查找、替换操作控件
2013-06-15 09:39 1550一、程序入口: using System; using ... -
C#对文件、文件夹操作公用组件
2013-06-11 09:46 968namespace HR.Class.IO { / ... -
TreeView控件操作开发篇之(五)
2013-06-09 00:09 828#region 加载文件夹及文件到树 ...
相关推荐
C#将小写金额转换成大写,很高兴能与大家分享我的资源
在日常财务处理、票据填写等场景中,经常需要将阿拉伯数字表示的金额转换成汉字大写形式,特别是在中国的财务领域中更是如此。这种转换通常是为了确保金额的准确性和防止篡改。本文将详细介绍如何在C#中实现这一功能...
C#语言的对金额的大写转换,包括圆整等,可以直接复制使用,亲测过。
本文将深入探讨如何使用C#语言来封装一个类,实现将金额转换为大写金额的功能,并通过具体的代码示例进行解析。 首先,我们需要创建一个名为`BigMoney`的类,这个类的主要任务是将输入的浮点数或字符串形式的金额...
在压缩包中,`说明.txt`文件可能包含了详细的使用说明和代码实现逻辑,而`AmountTransfer`可能是项目中的主要源代码文件,包含实现金额转换功能的类或方法。通过阅读`AmountTransfer`源代码,我们可以更深入地了解...
总结来说,C#中将货币金额转换为中文大写涉及到字符串操作、数值处理以及中文字符的使用。通过编写适当的方法,我们可以轻松实现这一功能,满足财务系统中的需求。在实际开发中,还需要根据具体业务逻辑进行调整和...
在日常财务处理、银行系统以及各种商业应用中,将数字金额转换成大写中文金额是一项非常实用的功能。这种转换主要用于正式文件中的金额表示,如发票、支票等,可以有效防止金额被篡改。下面将详细介绍如何在C#中实现...
在提供的压缩文件`QT067-C#把金额转换为大写word版`中,应该包含了这个功能的详细实现和可能的测试用例,可以帮助开发者理解和学习如何在C#中进行金额转换。 总的来说,将金额转换为大写是C#编程中的一项实用技能,...
将数字转换为汉字大写数字。不支持负数。 输入(字符串):"10200004.02" 输出(字符串):"壹仟零贰拾萬零肆元零角贰分
在IT行业中,编程语言C#是广泛用于开发各种应用程序,包括桌面应用、Web应用以及游戏开发等。在处理金融或会计相关的...通过理解和利用这些工具,我们可以创建出高效且准确的金额转换算法,满足不同业务场景的需求。
### C# 金额转换:小写转大写 在日常生活中,我们经常会遇到需要将数字金额转换成汉字大写的情况,尤其是在财务、会计以及银行系统中更为常见。对于编程语言如C#而言,实现这种功能也是一项基本技能。 #### 一、...
FastReport 4 小写金额转中文大写金额,C#代码脚本 例子中代码放入Table中TableCell的AfterData事件中
C# 财务用类 输入小写金额 转换成大写金额
在Asp.net C#开发中,经常需要处理与货币相关的数据,这包括将数字金额转换成规范的中英文表示方式,以满足财务报告、发票或合同等场景的需求。本资源提供的程序实现了一种高效的方法来完成这个任务。下面将详细阐述...
使用这个函数,你可以轻松地将任何小写的金额转换为大写形式。例如,`ConvertToChinese("123456789.00")` 将返回 "壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元整"。 在实际项目中,可能还需要考虑其他因素,比如货币符号...
在C#编程中,将金额转换成中文大写金额是一个常见的需求,特别是在财务软件或会计系统中。这个功能有助于防止由于数字输入错误导致的财务问题,因为中文大写金额更不容易被篡改。以下是如何使用C#实现这个功能的详细...
在C#中实现大小写金额转换的核心在于将阿拉伯数字转换为中文大写数字,并适当地添加单位如“元”、“角”、“分”。此外,还需处理小数部分,确保转换后的文本格式正确,符合中文财务规范。 #### 核心逻辑解析 1. *...
在编程领域,尤其是在财务软件开发中,将数字转化为大写汉字是常见的需求,尤其是在处理...以上就是使用C#实现数字转化大写的基本原理和方法,它们能够帮助开发者高效地处理财务相关的数字表示,提高软件的用户体验。
本篇文章详细介绍了如何使用C#语言实现将大写金额转换为数字的过程。通过逐个处理每个金额单位并累加计算,可以准确地完成转换任务。这种方法不仅可以应用于财务系统中,还可以广泛应用于其他需要处理大写金额的场景...
在IT行业中,尤其是在软件开发领域,经常会遇到将数字金额转换为中文大写的场景,这在处理财务、会计或银行系统时尤为重要。对于C#开发者来说,实现人民币大写转换是一项基本技能。本文将深入探讨如何在C#中进行...