zoukankan
html css js c++ java
小写金额转换成中文大字金额函数
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;
}
查看全文
相关阅读:
flash处理安全策略
flash builder 命令行创建 AsDoc
如何永久关闭选项"Tools > Close Other Forms"
Oracle EBS Reports 日期格式 与 客户端日期格式(控制面板 > 区域和语言选项)
ora00600 Metalink ID: 752428.1
如何修改台EBS的用户密码
dbms_utility.format_error_backtrace() 返回错误行
SQL*PLUS命令的使用大全
APPPER50022 (system administrator > profile > system . HR:User Type)
客户端连接数据时会报“ORA12537:TNS连接已关闭”
原文地址:https://www.cnblogs.com/conquer/p/1136948.html
最新文章
理解 __doPostBack(转)
权限小结
分享开发soket经验 我的基于socket的持久层(转)
asp.net程序优化技巧
任务计划
在客户端触发服务器onclick(小技巧)
代理模式
MVC(温习深入)
架构中的流程控制和处理方法
观察者模式和委托
热门文章
Javascript中最常用的55个经典技巧(转)
触摸屏下运行程序的开发概念
flash builder 4 编译器参数
localhost下模拟慢网速
pureMVC体会
深入理解Flash Player重绘
flash原则
免费参加第二期FLASH专家交流会,3月28日火热报名中!
GRASP (职责分配原则)
AMF
Copyright © 2011-2022 走看看