zoukankan
html css js c++ java
将数字金额转换成大写人民币形式(网站收到的一个方法很不错)
/**/
///
<summary>
///
将数字金额转换成大写人民币形式。
///
</summary>
///
<param name="num">
金额
</param>
///
<returns>
返回大写形式
</returns>
public
static
string
CmycurD(
decimal
num)
{
string
str1
=
"
零壹贰叁肆伍陆柒捌玖
"
;
//
0-9所对应的汉字
string
str2
=
"
万仟佰拾亿仟佰拾万仟佰拾元角分
"
;
//
数字位所对应的汉字
string
str3
=
""
;
//
从原num值中取出的值
string
str4
=
""
;
//
数字的字符串形式
string
str5
=
""
;
//
人民币大写金额形式
int
i;
//
循环变量
int
j;
//
num的值乘以100的字符串长度
string
ch1
=
""
;
//
数字的汉语读法
string
ch2
=
""
;
//
数字位的汉字读法
int
nzero
=
0
;
//
用来计算连续的零值是几个
int
temp;
//
从原num值中取出的值
num
=
Math.Round(Math.Abs(num),
2
);
//
将num取绝对值并四舍五入取2位小数
str4
=
((
long
)(num
*
100
)).ToString();
//
将num乘100并转换成字符串形式
j
=
str4.Length;
//
找出最高位
if
(j
>
15
)
{
return
"
溢出
"
; }
str2
=
str2.Substring(
15
-
j);
//
取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分
//
循环取出每一位需要转换的值
for
(i
=
0
; i
<
j; i
++
)
{
str3
=
str4.Substring(i,
1
);
//
取出需转换的某一位的值
temp
=
Convert.ToInt32(str3);
//
转换为数字
if
(i
!=
(j
-
3
)
&&
i
!=
(j
-
7
)
&&
i
!=
(j
-
11
)
&&
i
!=
(j
-
15
))
{
//
当所取位数不为元、万、亿、万亿上的数字时
if
(str3
==
"
0
"
)
{
ch1
=
""
;
ch2
=
""
;
nzero
=
nzero
+
1
;
}
else
{
if
(str3
!=
"
0
"
&&
nzero
!=
0
)
{
ch1
=
"
零
"
+
str1.Substring(temp
*
1
,
1
);
ch2
=
str2.Substring(i,
1
);
nzero
=
0
;
}
else
{
ch1
=
str1.Substring(temp
*
1
,
1
);
ch2
=
str2.Substring(i,
1
);
nzero
=
0
;
}
}
}
else
{
//
该位是万亿,亿,万,元位等关键位
if
(str3
!=
"
0
"
&&
nzero
!=
0
)
{
ch1
=
"
零
"
+
str1.Substring(temp
*
1
,
1
);
ch2
=
str2.Substring(i,
1
);
nzero
=
0
;
}
else
{
if
(str3
!=
"
0
"
&&
nzero
==
0
)
{
ch1
=
str1.Substring(temp
*
1
,
1
);
ch2
=
str2.Substring(i,
1
);
nzero
=
0
;
}
else
{
if
(str3
==
"
0
"
&&
nzero
>=
3
)
{
ch1
=
""
;
ch2
=
""
;
nzero
=
nzero
+
1
;
}
else
{
if
(j
>=
11
)
{
ch1
=
""
;
nzero
=
nzero
+
1
;
}
else
{
ch1
=
""
;
ch2
=
str2.Substring(i,
1
);
nzero
=
nzero
+
1
;
}
}
}
}
}
if
(i
==
(j
-
11
)
||
i
==
(j
-
3
))
{
//
如果该位是亿位或元位,则必须写上
ch2
=
str2.Substring(i,
1
);
}
str5
=
str5
+
ch1
+
ch2;
if
(i
==
j
-
1
&&
str3
==
"
0
"
)
{
//
最后一位(分)为0时,加上“整”
str5
=
str5
+
'
整
'
;
}
}
if
(num
==
0
)
{
str5
=
"
零元整
"
;
}
return
str5;
}
查看全文
相关阅读:
Apache HTTPServer与JBoss/Tomcat的整合与请求分发
——随想——
websphere安装和mvn dependency:copy-dependencies
Struts2拦截器总结<转>
db2索引创建和删除
关于盒子模型的应用(制作三角形)
创建文本框的步骤及一些常见的知识点
HTML5与CSS3基础(五)
HTML5与CSS3基础(四)
HTML5与CSS3基础(三)
原文地址:https://www.cnblogs.com/skyblue/p/989702.html
最新文章
闪屏Flash动画
密码明文密文显示
各类IT技术学习视频
列表按照字母排序检索SideBar
图片浏览(点击放大缩小支持多张图片浏览)
EF——Guid类型数据的自增长、时间戳和复杂类型的用法 03 (转)
EF——默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射 02 (转)
FE—— Code First 初体验 01(转)
《Entity Framework 6 Recipes》中文翻译——第十二章自定义EntityFramework对象(一)
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(八)
热门文章
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(六)
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(五)
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(四)
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(三)
《Entity Framework 6 Recipes》中文翻译——第十章EntityFramework存储过程处理(二)
MYSQL的binary解决mysql数据大小写敏感问题 《转载》
DB2 SQL RR/RS/CS/UR四个级别《转载》
Mysql中类似于nvl()函数的ifnull()函数
Aqua Data Studio中文乱码
在字符编码格式选项里UTF-8(无BOM)的意思
Copyright © 2011-2022 走看看