小写金额转大写金额

合集下载

小写金额转换为大写金额(C实现)

小写金额转换为大写金额(C实现)

前言银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。

票据和结算凭证是银行、单位和个人凭以记载帐务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。

因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。

我的服务需要一个金额转换过程,本来想在网上找,但都是C++、JavaScript、Delphi 的Demo,还没有C的。

索性自己写一个。

参考了其它的转换算法,对我有些启发。

大多的算法都是直接分析字符串生成大写金额,即存在一个假设:源字符串的格式是正确的。

在我的过程中,用状态机的方法分析源字符串,错误时,返回空指针(我可不敢保证传给我的过程的都是##.##)。

分析出源字符串中整数部有多少个数字,是否有小数,统计结果放在一个结构体中,整数和小数部分的数字分别放在两个整形数组里。

有了统计数据就可以生成大写金额了。

转换过程有个难点:要区分万、亿等“段”,特别是个位这个“段”,这个概念是在《小写转大写金额在C++中的实现》文章中提到的。

在下面的程序中用j= ( size - i - 1 ) & 0x3,实际上是j = ( size - i - 1 ) % 4取模,j==0时为段尾,需要特殊处理。

所有的处理都是围绕0来进行的,也就是说,0才是难点。

特殊位置的0,按段分,段中第一个非0数字前的0,可能有多个;段中两个非0数字间的0;段尾的0;个位的0;十分位,角位置的0。

另外,转换的一个重点是大写金额的写法,好像大多的算法都注重转换过程而对这个问题没有深究。

我在文章后面附上转换规则。

下面是代码1./**2.* @brief 将源字符串中的小写金额转换为大写格式3.*4.* @param dest 目的字符串5.* @param src 小写金额字符串6.* @return7.* - NULL 源字符串的格式错误,返回NULL8.* - 非NULL 目的字符串的首地址9.* @note 转换根据:中国人民银行会计司编写的最新《企业、银行正确办理支付结算10.* 指南》的第114页-第115页11.*/12.char* chineseFee( char* dest, char* src )13.{14. enum15. {16.START, //开始17.MINUS, //负号18.ZEROINT, //0整数19.INTEGER, //整数20.DECIMAL, //小数点21.DECIMALfRACTION, //小数位22.END, //结束23.ERROR //错误24. } status = START;25. struct26. {27.int minus; //0为正,1为负28.int sizeInt;29.int sizeDecimal;30.int integer[10];31.int decimal[10];32. } feeInfo;33. char* NumberChar[] =34.{ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };35. char* UnitChar[] =36.{ "整", "圆", "拾", "佰","仟", "万", "拾", "佰", "仟", "亿",37. "拾", "佰", "仟", "万亿", "拾", "佰", "仟", "亿亿",38. "角", "分", "负", "人民币" };39.40. int i, j,size; //循环变量41. int zeroTag = 0, //0标志42. decZeroTag = 0;43.44. char* pDest = dest;45. char* pSrc = src;46.47. int* pInt = feeInfo.integer;48. int* pDec = feeInfo.decimal;49.50. //初始化51. feeInfo.sizeInt = 0;52. feeInfo.sizeDecimal = 0;53. feeInfo.minus = 0;54.55. //分析字符串56. while( 1 )57. {58.switch ( *pSrc )59.{60.case '-' :61. status = ( status == START ) ? MINUS : ERROR;62. feeInfo.minus = ( status == MINUS ) ? 1 : 0;63. break;64.case '1' :65.case '2' :66.case '3' :67.case '4' :68.case '5' :69.case '6' :70.case '7' :71.case '8' :72.case '9' :73.case '0' :74. if ( *pSrc == '0' && status == ZEROINT )//|| status== START ) )75. {76.status = ERROR;77.break;78. }79. if ( status == MINUS || status == START || status== INTEGER )80. {81.if ( *pSrc == '0' && ( status == MINUS ||status == START ) )82.status = ZEROINT;83.else84.status = INTEGER;85.*pInt = (*pSrc) - 48;86.++pInt;87.++feeInfo.sizeInt;88. }89. else if ( status == DECIMAL || status ==DECIMALfRACTION )90. {91.status = DECIMALfRACTION;92.*pDec = (*pSrc) - 48;93.++pDec;94.++feeInfo.sizeDecimal;95. }96. else97. {98.status =ERROR;99. }100. break;101.case '.' :102. status = ( status == INTEGER || status == ZEROINT )103. ? DECIMAL : ERROR;104. break;105.case '\0' :106. status = ( status == INTEGER || status == DECIMALfRACTION107.|| status == ZEROINT ) ? END : ERROR;108. break;109.default :110. status = ERROR;111.}112.if ( status == END )113.break;114.else if ( status == ERROR )115.return NULL;116.117.++pSrc;118. }119.120. //只有1位小数时,设置百分位为0,使下面代码不需要区分这两种情况121. if ( feeInfo.sizeDecimal == 1 )122. {123.feeInfo.decimal[ 1 ] = 0;124.++feeInfo.sizeDecimal;125. }126. //判断是否需要打印小数部分,有小数部且十分位和百分位不都为0 127. //需要打印小数部时,zeroTag设为0,否则设为1128. if ( feeInfo.sizeDecimal ==0 //没有小数129.|| ( !feeInfo.decimal[ 0 ] && !feeInfo.decimal[ 1 ] ) ) //小数部都为0130.decZeroTag = 1;131. else132.decZeroTag = 0;133.134. //printf( "int size: %d decimal size: %d\n", feeInfo.sizeInt, feeInfo.sizeDecimal );135.136. strcpy( pDest, UnitChar[ 21 ] ); //初始化目标字符串-人民币137.138. if ( feeInfo.minus ) strcat( pDest, UnitChar[ 20 ] ); //负号139.140. //处理整数部分141. size = feeInfo.sizeInt;142. for( i = 0; i < size; ++i )143. {144.j = size - i - 1 &0x3; //j = 0时为段尾145.if ( feeInfo.integer[ i ] == 0 &&j ) //处理非段尾0146.{147.zeroTag = 1;148.}149.else if ( feeInfo.integer[ i ] == 0 && !j ) //处理段尾0150.{151.if ( feeInfo.sizeInt == 1 &&decZeroTag ) //特殊处理个位0152. strcat( pDest,NumberChar[ feeInfo.integer[ i ] ] );153.if ( feeInfo.sizeInt != 1 || decZeroTag )154. strcat( pDest, UnitChar[ size - i ] );155.zeroTag = 0;156.}157.else//处理非0158.{159.if ( zeroTag )160.{161. strcat( pDest, NumberChar[ 0 ] );162. zeroTag = 0;163.}164.strcat( pDest, NumberChar[ feeInfo.integer[ i ] ] ); 165.strcat( pDest, UnitChar[ size - i ] );166.if ( !j ) zeroTag =0; //如果是段尾,设为非标志167.}168. }169.170. if ( decZeroTag )171. {172.strcat( pDest, UnitChar[ 0 ] );//没有小数部,打印"整"字符173. }174. else175. {176.//十分位177.if ( feeInfo.decimal[ 0 ] )178.{179.strcat( pDest, NumberChar[ feeInfo.decimal[ 0 ] ] );180.strcat( pDest, UnitChar[ 18 ] );181.}182.else if ( feeInfo.sizeInt != 1 || feeInfo.integer[ 0 ] ) 183.{184.strcat( pDest, NumberChar[ feeInfo.decimal[ 0 ] ] );185.}186.187.//百分位不为0时188.if ( feeInfo.decimal[ 1 ] )189.{190.strcat( pDest, NumberChar[ feeInfo.decimal[ 1 ] ] );191.strcat( pDest, UnitChar[ 19 ] );192.}193. }194. return dest;195.}复制代码代码中有些地方没有注释清楚,要是有不明白的可以E-Mail我z_jingwei@。

如何将小写金额变成大写数值

如何将小写金额变成大写数值

如何将小写数值变成大写数值=IF(C10<0,"金额为负无效",IF(OR(C10=0,C10=""),"零元整",IF(C10<1,"",TEXT(INT(C10),"[dbnum2]G/通用格式")&"元"))) & IF(INT(C10*10)-INT(C10)*10=0,IF(INT(C10)*(INT(C10*100)-INT(C10*10)*10)=0,"","零"),TEXT(INT(C10*10)-INT(C10)*10,"[dbnum2]")&"角")&IF((INT(C10*100)-INT(C10*10)*10)=0,"整",TEXT((INT(C10*100)-INT(C10*10)*10),"[dbnum2]")&"分")excel表格中如何将小写金额转换为大写金额,如数值为0时则不在表中显示,如数值为负时则显示“负***”=IF(H12=0,"",IF(INT(H12),TEXT(TRUNC(H12),"[dbnum2]")&"元","")&IF(MOD(H12,1)=0,"整",IF(TRUNC(H12,1),IF(H12=TRUNC(H12,1),TEXT(LEFT(RIGHT(H12*100,2)),"[dbnum2]0角整"),TEXT(RIGHT(H12*100,2),"[dbnum2]0"&IF(LEFT(RIGHT(H12*100,2))="0","","角")&"0分")),TEXT(H12*100,"[dbnum2]0分"))))如何在excel中输入小写金额,自动转换为大写金额假设Sheet1的A4是你阿拉伯合计金额,以下为Sheet2中的小写金额=Sheet1!A4 假设这个公式是在Sheet2的C6单元格里,以下为大写金额=IF(INT(C6)-C6=0,TEXT(C6,"[DBNum2][$-804]G/通用格式""元整"""),TEXT(INT(C6),"[DBNum2][$-804]G/通用格式""元""")&TEXT(RIGHT(INT(C6*10),1),"[DBNum2][$-804]G/通用格式""角""")&TEXT(RIGHT(INT(C6*100),1),"[DBNum2][$-804]G/通用格式""分""")) 解释:IF(INT(C6)-C6=0,一串,另一串),如果C6是整数(函数INT是取整的意思,取整后减去原数为0,说明是整数),返回一串,否则返回另一串。

数字金额小写大写转换

数字金额小写大写转换

数字金额小写大写转换(excel)(wotd)
1、运用输入法来实现,如极点中文(QQ五笔)输入平台,在极点五笔(QQ五笔)中,输入“;阿拉伯数字;”(注意分
号是半角英文分号),后面是所要的金额数字,如输入;123.45 即得壹佰贰拾叁圆肆角伍分。

注意不要关闭输入法,一定在输入汉字状态下。

这个是我用过所有的当中最好
用也是最方便的一个,而且还有一个好处就是word和Excel
通用。

如用搜狗拼音输入法(v模式):v123.45 即得壹佰
贰拾叁圆肆角伍分。

示例:
日期转换按;(分号)后输入数字;2005.8.26 输出二〇〇五年八月二金额转换按;(分号)后输入数字;2088.82 输出贰仟零捌拾捌元捌角
假设你要造一个能输入当前日期及时间的词组,编码是now,那么你可以根据自己的格式要求使用上面的变量来造出此词组。

比如,我们造了一个"$y年$m年$d日$20$h时$mi分$0s秒"的词组,当你输入编码:空格now后在输入
2008.6.24.20.45.06,输出的内容会是类似下面这样的:
2008年6月24日 20时45分06秒(只有在极点五笔中才有此功能)
2.EXCEL中,选中数字金额的单元格,打开“设置单元格格式”对
话框,“数字”分类下“特殊”,有中文大写,小写数字,不过此方法
只是把阿拉伯数字原样改成大写金额而已,比较生搬硬套。

以上的公式
就是根据此选项定义变通改编而来。

数字金额小写大写转换

数字金额小写大写转换

数字金额小写大写转换(excel)(wotd)
1、运用输入法来实现,如极点中文(QQ五笔)输入平台,在极点
五笔(QQ五笔)中,输入“;阿拉伯数字;”(注意分号是半角英文分号),
后面是所要的金额数字,如输入;123.45即得壹佰贰拾叁圆肆角伍分。

注意不要关闭输入法,一定在输入汉字状态下。

这个是我用过所有的当
中最好用也是最方便的一个,而且还有一个好处就是word和Excel通
用。

如用搜狗拼音输入法(v模式):v123.45即得壹佰贰拾叁圆肆角
伍分。

示例:
日期转换按;(分号)后输入数字;2005.8.26 输出二〇〇五年八月二十金额转换按;(分号)后输入数字;2088.82 输出贰仟零捌拾捌元捌角
假设你要造一个能输入当前日期及时间的词组,编码是now,那么你可以根据自己的格式要求使用上面的变量来造出此词组。

比如,我们造了一个"$y年$m年$d日$20$h时$mi分$0s秒"的词组,当你输入编码:空格now后在输入
2008.6.24.20.45.06,输出的内容会是类似下面这样的:
2008年6月24日 20时45分06秒(只有在极点五笔中才有此功能)
2.EXCEL中,选中数字金额的单元格,打开“设置单元格格式”对
话框,“数字”分类下“特殊”,有中文大写,小写数字,不过此方法
只是把阿拉伯数字原样改成大写金额而已,比较生搬硬套。

以上的公式
就是根据此选项定义变通改编而来。

大小写转化器

大小写转化器

大小写转化器数字转换大写工具使用说明:
将阿拉伯数字复制粘贴或输入到“输入小写数字金额”中,比如(123456),然后单击“转换为大写金额”按钮。

就会在“显示中文大写金额”框中显示自动转换完成的中文大写内容。

最后复制转换完成的内容到想到的地方粘贴即可。

人民币符号:¥;美元符号:$;欧元符号:€;英镑符号:£(货币符号可直接鼠标选中后复制使用)。

阿拉伯数字对应大写表 - 数字转大写金额 (以下红色字可选中复制)
使用说明:
中文大写金额数字前应标明“人民币”字样,大写金额数字应紧接“人民币”字样填写,不得留有空白。

阿拉伯数字小写金额数字中有“0”时,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。

例如:¥201123.68应写成人民币贰拾万零贰仟壹佰贰拾叁元陆角捌分,或写成人民币贰拾万零贰仟壹佰贰拾叁元陆角捌分。

金额单位(位数)对应表
使用说明:
中文大写金额数字到“元”为止的,在“元”之后、应写“整”(或“正”)字;在“角”之后,可以不写“整”(或“正”)字;大写金额数字有“分”的,“分”后面不写“整”(或“正”)字。

excel表格金额大小写转换

excel表格金额大小写转换

竭诚为您提供优质文档/双击可除excel表格金额大小写转换篇一:excel表中小写金额直接转换成大写金额的公式excel表中小写金额直接转换成大写金额的公式:一、=iF(oR(a1 三、用公式就可以,我不懂做会计的如何用大写表示如128.40这样的角不为0但分为0的值,是“壹佰贰拾捌元肆角整”还是“壹佰贰拾捌元肆角”?如果是“壹佰贰拾捌元肆角”,请用这个公式:=text(int(b2),"[dbnum2]"),text((int(c10*100)-int(c1 0*10)*10),"[dbnum2]")nascurrencyconstcnumasstring="零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"constcchaasstring="零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"dimsnumasstringdimiaslongif(n0)and(abs(n)snum=trim(str(int(abs(n)*100)))Fori=1tolen(snum)逐位转换baituRmbdx=baituRmbdx+mid(cnum,(mid(snum,i,1))+1,1) +mid(cnum,26-len(snum)+i,1)nextFori=0to11去掉多余的零baituRmbdx=Replace(baituRmbdx,mid(ccha,i*2+1,2),mid (ccha,i+26,1))nextifn elsebaituRmbdx=iif(n=0,"零元","溢出")endifendFunction11Functionuppernum(n)nassingle数字大写函数ifn 正负判断="负"endifn=n+0.0001ifint(n*1000)-int(n*100)*10>4thenn=(int(n*100)+1)/100+0.001elsen=int(n*100)/100+0.001endifselectcasencaseis>9999999999999.99uppernum="数据不符"msgbox"金额不能大于9999999999999.99!",vbokonly,"出错提示"caseelseconstcnum="零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"constccha="零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"uppernum=""snum=""s=trim(str(n))Fori=1tolen(s)-1ifmid(s,i,1)"."thensnum=snum+mid(s,i,1)Fori=1tolen(snum)逐位转换uppernum=uppernum+mid(cnum,(mid(snum,i,1))+1,1)+mid (cnum,26-len(snum)+i,1)nextiFori=0to11去掉多余的零uppernum=Replace(uppernum,mid(ccha,i*2+1,2),mid(cch a,i+26,1))nextiendselectif正负判断="负"thenuppernum="负"&uppernumendFunction12Functionjezh(xasRange)ifx>=1thenifint(x)=xorRound(x,2)=int(x)thenjezh=application.worksheetFunction.text(int(x),"[db num2]")&"元"elseifint(x*10)=x*10orint(x*10)=Round(x,2)*10then。

excel金额大小写转换公式的用法

excel金额大小写转换公式的用法

excel金额大小写转换公式的用法Excel中经常需要使用到金额大小写转换公式对金额进行转换,金额大小写转换公式具体该如何使用呢?接下来是小编为大家带来的excel金额大小写转换公式的用法,供大家参考。

excel金额大小写转换公式用法(一)步骤1:数字转人民币大写形式的公式是:=IF(B10,金额为负无效,(IF(OR(B1=0,B1=),(人民币)零元,IF(B11,(人民币),TEXT(INT(B1),[dbnum2](人民币)G/通用格式)元)))),零),(TEXT(INT(B1*10)-INT(B1)*10,[dbnum2])角))整,TEXT((INT(B1*100)-INT(B1*10)*10),[dbnum2])分)步骤2:数字转人民币大写形式的公式是:=大写金额:,,IF(B1=0,,人民币0,负,)[dbnum2])元,)[dbnum2])角,IF(INT(ABS(B1))=ABS(B1),,IF(ABS(B1)0.1,,零)))[dbnum2])分,整)))excel金额大小写转换公式用法(二)步骤1:通过宏VBA自定义函数实现第一步:按下ALT+F11组合键,或者是单击工具宏Visual Basic编辑器,进入Visual Basic编程环境,单击插入菜单模块,复制下面代码,保存,退出关闭。

Function N2RMB(M)y = Int(Round(100 * Abs(M)) / 100)j = Round(100 * Abs(M) + 0.00001) - y * 100f = (j / 10 - Int(j / 10)) * 10A = IIf(y 1, , Application.Text(y, [DBNum2]) 元)b = IIf(j 9.5, Application.Text(Int(j / 10), [DBNum2]) 角, IIf(y 1, , IIf(f 1, 零, )))c = IIf(f 1, 整, Application.Text(Round(f, 0), [DBNum2]) 分)N2RMB = IIf(Abs(M) 0.005, , IIf(M 0, 负 b b c))End Function步骤2:返回excel操作界面,在B1单元格输入:= N2RMB (A1),就可以将A1单元格的数字转为人民币大写,然后向下复制公式即可将全部的数字转为人民币大写。

【工程计量】工程计量中小写金额转化为大写金额公式链接办法

【工程计量】工程计量中小写金额转化为大写金额公式链接办法

风清Hale Waihona Puke 2015 年 07 月 04 日
第 2 页
共 2 页
【工程计量】工程计量中小写金额转化为大写金额公式链接办法
1、工程计量小写金额转化为大写金额公式链接: 2、举例说明: ⑴例如:123456789.00
⑵例如:123456789.50
⑶例如:123456789.52
⑷例如:-123456789.00
⑸例如:-123456789.50
⑹例如:-123456789.52
3、公式链接及插入 EXCEl 表见第二页:
第 1 页
共 2 页
公式链接:
“D3 ”单元格为小写数字所在单元格 ,可根 除【】外整体复制至 EXCEl 中,其中 其中“ D3” 单元格为小写数字所在单元格, 据实际情况替换。
工程计量小写金额转化为大写金额公式链接
预算总价(小写): 预算总价(大写): -1234567890.00 负壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾元整

EXCEL中小写数字转换为中文大写货币金额格式方法

EXCEL中小写数字转换为中文大写货币金额格式方法

学习使人进步心之所向,所向披靡关于EXCEL中小写数字转换为中文大写货币金额格式方法第一种方法:复制红字体部分至需大写金额单元格=TEXT(INT(B12),"[DBNum2]G/通用格式")&"元"&IF((INT(B12*10)-INT(B12)*10)=0,IF((INT(B12*100)-INT(B12)*100)>0,"零",""),TEXT(IN T(B12*10)-INT(B12)*10,"[DBNum2]G/通用格式")&"角")&IF((INT(B12*100)-INT(B12*10)*10) =0,"整",TEXT(INT(B12*100)-INT(B12*10)*10,"[DBNum2]G/通用格式")&"分")B12为小写金额所在单元格()第二种方法:复制红字体部分至需大写金额单元格=IF(ROUND(B12,2)<0,"无效数值",IF(ROUN D(B12,2)=0,"零",IF(ROUND(B12,2)<1,"",TEXT(INT(ROUND(B12,2)),"[dbnum2]")&"元")&IF(I NT(ROUND(B12,2)*10)-INT(ROUND(B12,2))*10=0,IF(INT(ROUND(B12,2))*(INT(ROUND(B12, 2)*100)-INT(ROUND(B12,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(B12,2)*10)-INT(ROUND (B12,2))*10,"[dbnum2]")&"角")&IF((INT(ROUND(B12,2)*100)-INT(ROUND(B12,2)*10)*10)= 0,"整",TEXT((INT(ROUND(B12,2)*100)-INT(ROUND(B12,2)*10)*10),"[dbnum2]")&"分")))B12为小写金额所在单元格1、这个看起来比较烦琐,不过终究达到了效果。

Excel表中小写金额直接转换成大写金额的公式

Excel表中小写金额直接转换成大写金额的公式

Excel表中小写金额直接转换成大写金额的公式:一、=IF(OR(A1<0,A1=""),"",IF(VALUE(LEFT(A1,1))=0,"",NUMBERSTRIN G(INT(A1),2)&"元")&IF(ISERROR(FIND(".",A1)),"整",IF(VALUE(MID(A1,FIND(".",A1)+1,1))=0,"零",IF(ISERROR(FIND(".",A1)),"",NUMBERSTRING(MID(A1,FIND(".", A1)+1,1),2)&"角")))&IF(ISERROR(FIND(".",A1)),"",IF(LEN(ROUND(A1,2))=(FIND( ".",A1)+2),NUMBERSTRING(MID(ROUND(A1,2),FIND(".",A1)+2,1),2 )&"分","")))&IF(ISERROR(FIND(".",A1)),"","")二、假定你要在B1输入阿拉佰数字,C1转换成中文大写金额(含元角分),请在C1单元格输入如下公式:=SUBSTITUTE(SUBSTITUTE(IF(-RMB(B1),IF(B1>0,,"负")&TEXT(INT(ABS(B1)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(B1,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(B1^2<1,,"零")),"零分","整")三、用公式就可以,我不懂做会计的如何用大写表示如128.40这样的角不为0但分为0的值,是“壹佰贰拾捌元肆角整”还是“壹佰贰拾捌元肆角”?如果是“壹佰贰拾捌元肆角”,请用这个公式:=TEXT(INT(B2),"[DBNUM2]")&"元"&IF(INT(B2)=B2,"整",(IF(INT(B2*10)-INT(B2)*10>0,TEXT(INT(B2*10)-INT(B2)*10,"[ DBNUM2]")&"角","零")&IF(B2*100-INT(B2*10)*10>0,TEXT(B2*100-INT(B2*10)*10,"[db num2]")&"分","")))如果是“壹佰贰拾捌元肆角整”,请用这个公式:=TEXT(INT(B2),"[DBNUM2]")&"元"&(IF(INT(B2*10)-INT(B2)*10>0,TEXT(INT(B2*10)-INT(B2)*10,"[ DBNUM2]")&"角",IF(B2*100-INT(B2*10)*10>0,"零",""))&IF(B2*100-INT(B2*10)*10>0,TEXT(B2*100-INT(B2*10)*10, "[dbnum2]")&"分","整"))说明:1、将以上公式中的B2换成你要换算的值或对应的单元格。

javabigdacamel金额小写转中文大写的方法

javabigdacamel金额小写转中文大写的方法

javabigdacamel金额小写转中文大写的方法问题:javabigdacamel金额小写转中文大写的方法字数:1500-2000字一、介绍在许多应用程序中,例如财务管理系统,有时需要将金额从数字转换为中文大写形式。

通过将金额转换为中文大写形式,可以提高用户体验,并确保金额显示准确。

本文将介绍一种使用Java编程语言实现金额小写转中文大写的方法。

二、分析在将金额从小写数字转换为中文大写时,我们需要遵循一些规则。

下面是一些基本的规则:1. 以“圆”为单位进行金额的转换,如100.00元可以转为壹佰元。

2. 如果金额存在小数部分,则将其转换为角和分,如13.50元可以转换为壹拾叁元伍角。

3. 金额整数部分的处理规则如下:a. 每个数字都有对应的中文大写表示,如:1 - 壹、2 - 贰、3 - 叁等。

b. 除了金额的整数部分第一个数字之外,其他数字前面都需要加上单位,如:1000可以转换为壹仟。

c. 根据金额的位数,我们还需要确定单位的使用,如:1001可以转换为壹仟零壹元。

d. 当金额位数超过一定范围时,还需要使用更大的单位,比如亿、万等。

基于以上规则,我们可以编写Java代码来实现金额小写转中文大写的功能。

三、实现首先,我们需要创建一个Java类来实现金额小写转中文大写的逻辑。

以下是一个示例类的基本结构:public class AmountConverter {private static final String[] NUMBER_MAPPING = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};TODO: 实现金额转换方法TODO: 实现数字转换方法TODO: 实现单位转换方法}上述代码中,我们定义了一个名为AmountConverter的Java类,并声明了三个空方法,用于实现金额转换、数字转换和单位转换的逻辑。

excel技巧保留两位小数小写转大写金额的方法

excel技巧保留两位小数小写转大写金额的方法

excel技巧保留两位小数小写转大写金额的方法本文讨论的是小写金额转大写,当小写的金额数字带小数的时候,通常就是两位小数,比如123.45元,本文只针对两位小数的小写转大写金额转换。

1、十万以内范围转换:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择设置单元格格式,本文讨论的是小写金额转大写,当小写的金额数字带小数的时候,通常就是两位小数,比如123.45元,本文只针对两位小数的小写转大写金额转换。

1、十万以内范围转换:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择“设置单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中输入入:[DBNum2]0"万"0"仟"0"佰"0"拾"0"元".0"角"0"分""整"百以内的大写格式: [DBNum2][$-804]"大""写"!:0"佰"0"拾"0"元".0"角"0"分""整"小写格式: ¥#,##0.00_),[红色](¥#,##0.00)2、十万以外范围转换:将小写数字转换成大写中文:右击需要转换的单元格,在弹出的快捷菜单中选择“设置单元格格式”,然后在“数字”选项卡中选择“自定义”,在“类型”中输入:[DBNum2]0"万"0"仟"0"佰"0"拾"0"万"0"仟"0"佰"0"拾"0"元".0"角"0"分""整"199条建筑设计知识1. 公共建筑通常以交通、使用、辅助三种空间组成2. 美国著名建筑师沙利文提出的名言‘形式由功能而来’3. 密斯.凡.德.罗设计的巴塞罗那博览会德国馆采用的是‘自由灵活的空间组合’开创了流动空间的新概念4. 美国纽约赖特设计的古根海姆美术馆的展厅空间布置采用形式是串联式5. 电影放映院不需采光6. 点式住宅可设天井或平面凹凸布置可增加外墙面,有利于每层户数较多时的采光和通风7. 对结构形式有规定性的有大小和容量、物理环境、形状的规定性8. 功能与流线分析是现代建筑设计最常用的手段9. 垂直方向高的建筑需要考虑透视变形的矫正10. 橙色是暖色,而紫色含有蓝色的成分,所以偏冷;青色比黄色冷、红色比黄色暖、蓝色比绿色冷11. 同样大小冷色调较暖色调给人的感觉要大12. 同样距离,暖色较冷色给人以靠近感13. 为保持室内空间稳定感,房间的低处宜采用低明度色彩14. 冷色调给人以幽雅宁静的气氛15. 色相、明度、彩度是色彩的三要素;三元色为红、黄、蓝16. 尺度的概念是建筑物整体或局部给人的视角印象大小和其实际大小的关系17. 美的比例,必然正确的体现材料的力学特征18. 不同文化形成独特的比例形式19. 西方古典建筑高度与开间的比例,愈高大愈狭长,愈低矮愈宽阔20. ‘稳定’所涉及的要素是上与下之间的相对轻重关系的处理21. 人眼观赏规律H 18°~45°局部、细部2H 18°~27°整体3H <18°整体及环境22. 黄金分隔比例为1:1.61823. 通风屋面只能隔离太阳辐射不能保温,适宜于南方24. 总图布置要因地制宜,建筑物与周围环境之间关系紧凑,节约因地;适当处理个体与群体,空间与体形,绿化和小品的关系;合理解决采光、通风、朝向、交通与人流的组织25. 热水系统舒适稳定适用于居住建筑和托幼蒸汽系统加热快,适用于间歇采暖建筑如会堂、剧场26. 渐变具有韵律感27. 要使一座建筑显得富有活力,形式生动,在构图中应采用对比的手法对比的手法有轴线对比、体量对比、方向对比、虚实对比、色彩对比28. 要使柱子看起来显得细一些,可以采用暗色和冷色29. 巴西国会大厅在体型组合中采用了对比与协调的手法30. 展览建筑应使用穿套式的空间组合形式31. 室外空间的构成,主要依赖于建筑和建筑群体组合32. 在意大利威尼斯的圣马可广场的布局中,采用了强调了各种空间之间的对比33. 当坡地坡度较缓时,应采用平行等高线布置34. 建筑的有效面积=建筑面积-结构面积35. 加大开窗面积的方法来解决采光和通风问题较易办到36. 中国古代木结构大致可分为抬梁式、穿斗式和井干式三种37. 建筑构图原理的基本范畴有主从与重点、对比与呼应、均衡与稳定、节奏与韵律和比例与尺度38. 建筑构图的基本规律是多样统一39. 超过8层的建筑中,电梯就成为主要的交通工具了40. 建筑的模数分为基本模数、扩大模数和分模数41. 建筑楼梯梯段的最大坡度不宜超过38°42. 住宅起居室、卧室、厨房应直接采光,窗地比为1/7,其他为1/1243. 住宅套内楼梯梯段的最小净宽两边墙的0.9M,一边临空的0.75M住宅室内楼梯踏步宽不应小于0.22M,踏步高度不应小大0.20M44. 住宅底层严禁布置火灾危险性甲乙类物质的商店,不应布置产生噪声的娱乐场所45. 地下室、贮藏室等房间的最低净高不应低于2.0米46. 室内坡道水平投影长度超过15米时,宜设休息平台47. 外墙内保温所占面积不计入使用面积烟道、风道、管道井不计入使用面积阳台面积不计入使用面积壁柜应计入使用面积48. 旋转楼梯两级的平面角度不大于10度,且每级离内侧扶手中心0.25处的踏步宽度要大于0.22米49. 两个安全出口之间的净距不应小于5米50. 楼梯正面门扇开足时宜保持0.6米平台净宽,侧墙门口距踏步不宜小于0.4米,其门扇开足时不应减少梯段的净宽35. 加大开窗面积的方法来解决采光和通风问题较易办到36. 中国古代木结构大致可分为抬梁式、穿斗式和井干式三种37. 建筑构图原理的基本范畴有主从与重点、对比与呼应、均衡与稳定、节奏与韵律和比例与尺度38. 建筑构图的基本规律是多样统一39. 超过8层的建筑中,电梯就成为主要的交通工具了40. 建筑的模数分为基本模数、扩大模数和分模数41. 建筑楼梯梯段的最大坡度不宜超过38°42. 住宅起居室、卧室、厨房应直接采光,窗地比为1/7,其他为1/1243. 住宅套内楼梯梯段的最小净宽两边墙的0.9M,一边临空的0.75M住宅室内楼梯踏步宽不应小于0.22M,踏步高度不应小大0.20M44. 住宅底层严禁布置火灾危险性甲乙类物质的商店,不应布置产生噪声的娱乐场所45. 地下室、贮藏室等房间的最低净高不应低于2.0米46. 室内坡道水平投影长度超过15米时,宜设休息平台47. 外墙内保温所占面积不计入使用面积烟道、风道、管道井不计入使用面积阳台面积不计入使用面积壁柜应计入使用面积48. 旋转楼梯两级的平面角度不大于10度,且每级离内侧扶手中心0.25处的踏步宽度要大于0.22米49. 两个安全出口之间的净距不应小于5米50. 楼梯正面门扇开足时宜保持0.6米平台净宽,侧墙门口距踏步不宜小于0.4米,其门扇开足时不应减少梯段的净宽35. 加大开窗面积的方法来解决采光和通风问题较易办到36. 中国古代木结构大致可分为抬梁式、穿斗式和井干式三种37. 建筑构图原理的基本范畴有主从与重点、对比与呼应、均衡与稳定、节奏与韵律和比例与尺度38. 建筑构图的基本规律是多样统一39. 超过8层的建筑中,电梯就成为主要的交通工具了40. 建筑的模数分为基本模数、扩大模数和分模数41. 建筑楼梯梯段的最大坡度不宜超过38°42. 住宅起居室、卧室、厨房应直接采光,窗地比为1/7,其他为1/1243. 住宅套内楼梯梯段的最小净宽两边墙的0.9M,一边临空的0.75M住宅室内楼梯踏步宽不应小于0.22M,踏步高度不应小大0.20M44. 住宅底层严禁布置火灾危险性甲乙类物质的商店,不应布置产生噪声的娱乐场所45. 地下室、贮藏室等房间的最低净高不应低于2.0米46. 室内坡道水平投影长度超过15米时,宜设休息平台47. 外墙内保温所占面积不计入使用面积烟道、风道、管道井不计入使用面积阳台面积不计入使用面积壁柜应计入使用面积48. 旋转楼梯两级的平面角度不大于10度,且每级离内侧扶手中心0.25处的踏步宽度要大于0.22米49. 两个安全出口之间的净距不应小于5米50. 楼梯正面门扇开足时宜保持0.6米平台净宽,侧墙门口距踏步不宜小于0.4米,其门扇开足时不应减少梯段的净宽51. 入地下车库的坡道端部宜设挡水反坡和横向通长雨水篦子52. 室内台阶宜150*300;室外台阶宽宜350左右,高宽比不宜大于1:2.553. 住宅公用楼梯踏步宽不应小于0.26M,踏步高度不应大于0.175M54. 梯段宽度不应小于1.1M(6层及以下一边设栏杆的可为1.0M),净空高度2.2M55. 休息平台宽度应大于梯段宽度,且不应小于1.2M,净空高度2.0M56. 梯扶手高度0.9M,水平段栏杆长度大于0.5M时应为1.05M57. 楼梯垂直杆件净空不应大于0.11M,梯井净空宽大于0.11M时应采取防护措施58. 门洞共用外门宽1.2M,户门卧室起居室0.9M,厨房0.8M,卫生间及阳台门0.7M,所有门洞高为2.0M59. 住宅层高不宜高于2.8M60. 卧室起居室净高≥2.4M,其局部净高≥2.1M(且其不应大于使用面积的1/3)61. 利用坡顶作起居室卧室的,一半面积净高不应低于2.1M利用坡顶空间时,净高低于1.2M处不计使用面积;1.2--2.1M计一半使用面积;高于2.1M全计使用面积62. 放家具墙面长3M,无直接采光的厅面积不应大于10M263. 厨房面积Ⅰ、Ⅱ≥4M2;Ⅲ、Ⅳ≥5M264. 厨房净宽单面设备不应小于1.5M;双面布置设备间净距不应小于0.9M65. 对于大套住宅,其使用面积必须满足45平方米66. 住宅套型共分四类使用面积分别为34、45、56、68M267. 单人卧室≥6M2;双人卧室≥10M2;兼起居室卧室≥12M2;68. 卫生间面积三件3M2;二件2--2.5M2;一件1.1M269. 厨房、卫生间净高2.2M70. 住宅楼梯窗台距楼地面净高度低于0.9米时,不论窗开启与否,均应有防护措施71. 阳台栏杆净高1.05M;中高层为1.1M(但要<1.2);杆件净距0.1172. 无外窗的卫生间应设置防回流构造的排气通风道、预留排气机械的位置、门下设进风百叶窗或与地面间留出一定缝隙73. 每套应设阳台或平台、应设置晾衣设施、顶层应设雨罩;阳台、雨罩均应作有组织排水;阳台宜做防水;雨罩应做防水74. 寒冷、夏热冬冷和夏热冬暖地区的住宅,西面应采取遮阳措施75. 严寒地区的住宅出入口,各种朝向均应设防寒门斗或保温门76. 住宅建筑中不宜设置的附属公共用房有锅炉房、变压器室、易燃易爆化学物品商店但有厨房的饮食店可设77. 住宅设计应考虑防触电、防盗、防坠落78. 跃层指套内空间跨跃两楼层及以上的住宅79. 在坡地上建住宅,当建筑物与等高线垂直时,采用跌落方式较为经济80. 住宅建筑工程评估指标体系表中有一级和二级指标81. 7层及以上(16米)住宅必须设电梯82. 宿舍最高居住层的楼地面距入口层地面的高度大于20米时,应设电梯83. 医院病房楼,设有空调的多层旅馆,超过5层的公建室内疏散楼梯,均应设置封闭楼梯间(包括首层扩大封闭楼梯间)设歌舞厅放映厅且超过3层的地上建筑,应设封闭楼梯间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

break;
case "6":
//'WLNAME = IIf(mstrLanguage = "C", "嘲", "陆") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
{
//返回简体中文的中文描述
return GetDollorStr(mvarOrDollar,"P");
}
public static string GetDollorStr(double mvarOrDollar,string mstrLanguage)
break;
case "2":
//'WLNAME = IIf(mstrLanguage = "C", "禠", "贰") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
// Else
// WLAMT = mvarOrDollar.ToString();
WLAMT = StrFormat(mvarOrDollar, 12, 2);
if(mstrLanguage.Equals("C"))
WLNAME = "嘲" + WLDD.Substring(WLLOC, 1);
else
WLNAME = "陆" + WLDD.Substring(WLLOC, 1);
}
string spacestr = "";
t_word = t_word + spacestr.PadLeft(40 - t_word.Length,' ');
break;
case "7":
//'WLNAME = IIf(mstrLanguage = "C", "琺", "柒") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
if(mstrLanguage.Equals("C"))
WLNAME = "ヮ" + WLDD.Substring(WLLOC, 1);
else
WLNAME = "伍" + WLDD.Substring(WLLOC, 1);
case " ":
WLNAME = " ";
break;
case "1":
//WLNAME = IIf(mstrLanguage = "C", "滁", "壹") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
{
string WLNAME;
string WLDD;
if (mstrLanguage == "C")
WLDD = "货ㄕ珺窾ㄕ珺じ àだ";
else
{
string t_word;
string WLAMT;
// double tt;
t_word = "";
// If mstrLanguage = "E" Or mstrLanguage = "e" Then
if(mstrLanguage.Equals("C"))
break;
case "4":
//'WLNAME = IIf(mstrLanguage = "C", "竩", "肆") + Mid(WLDD, (WLLOC - 1) * 2 + 1ls("C"))
WLNAME = "琺" + WLDD.Substring(WLLOC, 1);
else
WLNAME = "柒" + WLDD.Substring(WLLOC, 1);
// End If
return t_word.Trim();
}
private static string SHRCHG(string WLAMT, string WLCD,int WLLOC,string mstrLanguage)
if(mstrLanguage.Equals("C"))
WLNAME = "滁" + WLDD.Substring(WLLOC, 1);
else
WLNAME = "壹" + WLDD.Substring(WLLOC, 1);
/// <summary>
/// 获取金额的大写中文文字 返回:中文数字文字
// mvarOrDollar 数字金额大小, mstrLanguage 字符串语言 P:简体中文 C:繁体中文
/// </summary>
for(int i = 0;i<12;i++)
{
if (i != 9)
t_word = t_word + SHRCHG(WLAMT, WLAMT.Substring(i, 1), i, mstrLanguage);
// t_word = t_word + noinword(Int(mvarOrDollar))
// If mvarOrDollar <> Int(mvarOrDollar) Then
// tt = Int((mvarOrDollar - Int(mvarOrDollar)) * 100)
if(mstrLanguage.Equals("C"))
WLNAME = "竩" + WLDD.Substring(WLLOC, 1);
else
WLNAME = "肆" + WLDD.Substring(WLLOC, 1);
break;
case "5":
//'WLNAME = IIf(mstrLanguage = "C", "ヮ", "伍") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
//WLDD = "亿千百十万千百十元 角分";
WLDD = "亿仟佰拾万仟佰拾元 角分";
WLNAME = " ";
switch (WLCD)
{
break;
case "3":
//'WLNAME = IIf(mstrLanguage = "C", "把", "叁") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
if(mstrLanguage.Equals("C"))
WLNAME = "把" + WLDD.Substring(WLLOC, 1);
else
WLNAME = "叁" + WLDD.Substring(WLLOC, 1);
break;
case "8":
//'WLNAME = IIf(mstrLanguage = "C", "", "捌") + Mid(WLDD, (WLLOC - 1) * 2 + 1, 2)
/// <param name="mvarOrDollar"></param>
/// <param name="mstrLanguage"></param>
/// <returns></returns>
public static string GetDollorStr(double mvarOrDollar)
// t_word = t_word & "And " & " Cents " & noinword(tt)
// End If
//
if(mstrLanguage.Equals("C"))
WLNAME = "禠" + WLDD.Substring(WLLOC, 1);
else
WLNAME = "贰" + WLDD.Substring(WLLOC, 1);
相关文档
最新文档