为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

金额小写转大写

2017-09-26 4页 doc 17KB 15阅读

用户头像

is_212655

暂无简介

举报
金额小写转大写金额小写转大写 基本考虑: 人民币大写单位银行规定用“元” 无零头金额后跟“整”,有则不跟 角为零时不写角(如:零叁分)四舍五入到分 为减少判读疑惑(一般对大写金额预期较高)和体现人民币基本单位为元,金额低于壹圆前仍加“零元” 整数转换 若干零后若跟非零值,只显示一个零,否则不显示 万(亿)前有零后不加零,因亿、万为一完整单位(如:拾万贰仟 比 拾万零贰仟 更顺些) 亿为汉语计数最大单位,只要进位到总是显示(如:壹亿亿) 万为次最大单位,亿万之间必须有非零值方显示万(如“壹亿”不可显示为“壹亿万”) 为减少...
金额小写转大写
金额小写转大写 基本考虑: 人民币大写单位银行规定用“元” 无零头金额后跟“整”,有则不跟 角为零时不写角(如:零叁分)四舍五入到分 为减少判读疑惑(一般对大写金额预期较高)和体现人民币基本单位为元,金额低于壹圆前仍加“零元” 整数转换 若干零后若跟非零值,只显示一个零,否则不显示 万(亿)前有零后不加零,因亿、万为一完整单位(如:拾万贰仟 比 拾万零贰仟 更顺些) 亿为汉语计数最大单位,只要进位到总是显示(如:壹亿亿) 万为次最大单位,亿万之间必须有非零值方显示万(如“壹亿”不可显示为“壹亿万”) 为减少被窜改的可能性,十进位总发壹音,这和下面的习惯读法不一样(十进位处于第一位不发壹音,如“拾元”非“壹拾元”,十进位处前有零是否不发壹音不太确定,如“叁仟零壹拾元”还是“叁仟零拾元”,)。 用“拾万”不用“壹拾万”,因为每个整数进位后都有进位单位(拾佰仟万亿), 这样即使金额前没有附防窜改的前缀如“人民币”字样也难窜改些。因为至少要加添两个汉字并且改动后数字必须进位才能窜改成(如“拾万”可改成“叁拾万”,而“壹拾万”至少要改成“壹佰壹拾万”) 此函数为Borland C++ Builder编写,已充分考虑到跨平台兼容性,如需转换到其它场合,只需修改字符串类型从AnsiString到对应的类型、功能及函数(注意两个 char*型字符串不可以直接相加,需有一个先转换) 源代码: using System; private static string[] HanDigiStr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; private static string[] HanDiviStr = { "","拾","佰","仟","万","拾","佰","仟","亿", "拾","佰","仟","万","拾","佰","仟","亿", "拾","佰","仟","万","拾","佰","仟" }; public static string NumToRMBStr(double val) { if(val>100000000000) return "数字过大~"; //不小于千亿(可以更大点但没有什么意义了) string SignStr="",TailStr=""; double fraction=0; Int64 integer=0; if( val<0 ) { val = -val; SignStr = "负"; } //整数部分 由于ToInt64本身有四舍五入功能所以要加 val%1 部分 integer=Convert.ToInt64(val-val%1); int jiao,fen; fraction = Math.Round(val%1,2); //四舍五入到分在.Net中四舍五入有点争议,它是伍不进位的。 fen = Convert.ToInt32((fraction*100)%10);//分 jiao = Convert.ToInt32((fraction*100-fen)/10);//角 if( jiao==0 && fen==0 ) { TailStr = "整"; } else { TailStr = HanDigiStr[jiao]; if( jiao!=0 ) TailStr += "角"; if( integer==0 && jiao==0 ) TailStr = ""; // 零元后不写零几分 if( fen!=0 ) TailStr += HanDigiStr[fen] + "分"; } // 下一行可用于非正规金融场合,0.03只显示“叁分”而不是“零元叁分” // if( integer==0 ) return SignStr+TailStr; return SignStr+PositiveIntegerToHanStr( integer.ToString()) + "元" + TailStr; } // 输入字符串必须正整数,只允许前导空格(必须右对齐),不宜有前导零 private static string PositiveIntegerToHanStr(string NumStr) { string RMBStr=""; int len,n; bool hasvalue=false,lastzero=false; //亿、万进位前有数值标记 len = NumStr.Length; for(int i=0;i
/
本文档为【金额小写转大写】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索