zoukankan
html css js c++ java
大写金额转换成小写
Q:
如何将大写金额转换成小写?
A:简单点,格式比较严格
private
float
getMoney(
string
strBig)
...
{
string
strExp
=
""
;
string
[] arrBig
=
new
string
[]
...
{
"
整
"
,
""
,
"
零
"
,
"
+0
"
,
"
壹
"
,
"
+1
"
,
"
贰
"
,
"
+2
"
,
"
叁
"
,
"
+3
"
,
"
肆
"
,
"
+4
"
,
"
伍
"
,
"
+5
"
,
"
陆
"
,
"
+6
"
,
"
柒
"
,
"
+7
"
,
"
捌
"
,
"
+8
"
,
"
玖
"
,
"
+9
"
,
"
分
"
,
"
*0.01
"
,
"
角
"
,
"
*0.1
"
,
"
元
"
,
"
*1
"
,
"
拾
"
,
"
*10.00
"
,
"
佰
"
,
"
*100.00
"
,
"
仟
"
,
"
*1000.00
"
,
"
万
"
,
"
*10000.00
"
,
"
亿
"
,
"
*100000000.00
"
}
;
for
(
int
i
=
0
; i
<
strBig.Length; i
++
)
...
{
for
(
int
j
=
0
; j
<
arrBig.Length
-
1
;j
+=
2
)
...
{
if
(arrBig[j]
==
strBig[i].ToString())
...
{
strExp
+=
arrBig[j
+
1
].ToString();
continue
;
}
}
}
object
ret
=
new
DataTable().Compute(strExp,
""
);
return
float
.Parse(ret.ToString());
//
Console.WriteLine(getMoney("玖仟零贰拾壹元陆角肆分"));
//
Console.WriteLine(getMoney("玖仟万亿零贰拾壹元陆角肆分"));
}
伴水兄的这个较狠
public
double
DecodeMoneyCn(
string
AText)
...
{
AText
=
AText.Replace(
"
万万
"
,
"
亿
"
);
AText
=
AText.Replace(
"
点
"
,
"
元
"
);
AText
=
AText.Replace(
"
块
"
,
"
元
"
);
AText
=
AText.Replace(
"
毛
"
,
"
角
"
);
double
vResult
=
0
;
double
vNumber
=
0
;
//
当前数字
double
vTemp
=
0
;
int
vDecimal
=
0
;
//
是否出现小数点
foreach
(
char
vChar
in
AText)
...
{
int
i
=
"
零一二三四五六七八九
"
.IndexOf(vChar);
if
(i
<
0
) i
=
"
零幺两三四五六七八九
"
.IndexOf(vChar);
if
(i
<
0
) i
=
"
零壹贰叁肆伍陆柒捌玖
"
.IndexOf(vChar);
if
(i
>
0
)
...
{
vNumber
=
i;
if
(vDecimal
>
0
)
...
{
vResult
+=
vNumber
*
Math.Pow(
10
,
-
vDecimal);
vDecimal
++
;
vNumber
=
0
;
}
}
else
...
{
i
=
"
元十百千万亿
"
.IndexOf(vChar);
if
(i
<
0
) i
=
"
整拾佰仟万亿
"
.IndexOf(vChar);
if
(i
==
5
) i
=
8
;
if
(i
>
0
)
...
{
if
(i
>=
4
)
...
{
vTemp
+=
vNumber;
if
(vTemp
==
0
) vTemp
=
1
;
vResult
+=
vTemp
*
Math.Pow(
10
, i);
vTemp
=
0
;
}
else
vTemp
+=
vNumber
*
Math.Pow(
10
, i);
}
else
...
{
i
=
"
元角分
"
.IndexOf(vChar);
if
(i
>
0
)
...
{
vTemp
+=
vNumber;
vResult
+=
vTemp
*
Math.Pow(
10
,
-
i);
vTemp
=
0
;
}
else
if
(i
==
0
)
...
{
vTemp
+=
vNumber;
vResult
+=
vTemp;
vDecimal
=
1
;
vTemp
=
0
;
}
}
vNumber
=
0
;
}
}
return
vResult
+
vTemp
+
vNumber;
}
private
void
button2_Click(
object
sender, EventArgs e)
...
{
string
[] vTestText
=
...
{
"
十二点五六
"
,
"
一亿零一万零五
"
,
"
四万万
"
,
"
九十八亿七千六百五十四万三千二百一十
"
,
"
五元一角四分
"
,
"
壹佰元整
"
,
"
三千五百万
"
,
"
九块二毛
"
}
;
foreach
(
string
vText
in
vTestText)
...
{
Console.WriteLine(
"
DecodeMoneyCn("{0}")={1}
"
, vText,
DecodeMoneyCn(vText));
}
}
查看全文
相关阅读:
团队作业3——需求改进&系统设计
团队作业2——需求分析&原型设计
团队作业1——团队展示&选题
【Alpha】第三次Daily Scrum Meeting
【Alpha】第二次Daily Scrum Meeting
【Alpha】第一次Daily Scrum Meeting
团队作业3——需求改进&系统设计
团队作业2——需求分析&原型设计
团队作业1——团队展示&选题
【Alpha】——Fourth Scrum Meeting
原文地址:https://www.cnblogs.com/cl1024cl/p/6204981.html
最新文章
字典树:求以某字符串开始的单词个数
最长回文子串
调研某一移动应用/平台的开发环境的发展演变
软件工程的实践项目的自我目标
在onResume()中调用getIntent()得不到Extra的问题
图层损坏 E/ArcGIS﹕ The map or layer has been destroyed or recycled. 资源未释放
[不明所以]android 5.0 couldn't find "libmsc.so"
内网php项目访问(切换在线解决)
wamp 修改www目录
eclipse 项目转as项目时 .so文件 jniLibs的设置
热门文章
【Alpha阶段】第三次scrum meeting
【Alpha阶段】第二次scrum meeting
【Alpha】第一次项目冲刺
团队作业3——需求改进&系统设计
团队作业2--需求分析&原型设计
团队作业1--团队展示&选题
【Alpha阶段】第四次 Scrum Meeting
【Alpha阶段】第三次scrum meeting
【Alpha阶段】第二次scrum meeting
【Alpha阶段】第一次Scrum Meeting!
Copyright © 2011-2022 走看看