| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1633 人关注过本帖
标题:请教各位大人:大写金额怎么变小写
只看楼主 加入收藏
likun_007
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-3-11
收藏
 问题点数:0 回复次数:7 
请教各位大人:大写金额怎么变小写

各位高人:
小弟急需用到这方面知识,拜谢先!!!!
介绍如下: 在C#环境下,实现大写金额转换为阿拉伯数字,例如壹仟肆佰伍拾陆元柒角捌分转为1456.78元。
代码怎么完成呢?
不胜感激!!!!

搜索更多相关主题的帖子: 金额 阿拉伯数字 大人 变小 
2006-03-11 09:07
xy_fishlove
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-3-10
收藏
得分:0 
swich语句就可以,分别判断,不过麻烦点

2006-03-11 11:16
likun_007
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-3-11
收藏
得分:0 

能不能再说具体些呀? 还是一头雾水着。。。

2006-03-11 11:31
htzz
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-3-10
收藏
得分:0 

用swich语句如果数额大点的的确很麻烦。
我写过把数字转换成罗马数字的代码看看有没有帮助。

int sum,a,b,c;
string sum1; //罗马数字


string [] s1={"" ,"I","II","III","IV","V","VI","VII","VIII","IX"};
string [] s2={"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
string [] s3={"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};

a=sum%10;
b=((sum-a)%100)/10;
c=((sum-a-b)%1000)/100;
sum1=s3[c]+s2[b]+s1[a]; //罗马数字


2006-03-12 15:22
likun_007
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-3-11
收藏
得分:0 

好像差的挺远的呀。。。
我试着做一些,代码如下:
存在的问题是: a:万位一下的可以运行,如叁万叁仟叁佰叁拾叁元,就可以转换的;单独的以万数量级也可以,如贰拾肆万,也行的。但是当跨位数时,就出现问题了,如 叁佰肆拾伍万肆仟叁佰陆拾柒元就转为54707 应该叁佰万当300转了,肆拾万当40转了,不解。
b 碰到零时怎么执行呢?
c 当‘元’、‘万’前面是‘拾’,‘佰’,‘仟’等位数时该怎么判断呢?


急需请教,谢谢先!
public static double Change(string sum)
{
char[] Char=sum.ToCharArray(); //把字符串转化为数组
int The_Len;
int m,n=0;int l;
double S1=0;
int S2=0;
double result=0;
m=Char.Length;
if(Char[m-1]=='整')
{
The_Len = m - 2;
}
else
{
The_Len = m - 1;
}
for(n=The_Len;n>=1;n = n - 2)
{

switch(Char[n])
{
case '分':
S1=0.01;break;
case '角':
S1=0.1;break;
case '元':
S1=1; break;
case '拾':
for(l=0;l<m-1;l++)
{
if(Char[l]=='万')
{
if (l>=2)
{
if (l小于n)
{S1=10;}
else
{S1=100000;} //判断是否在万位以前
}
else
{S1=10;}
}
else
{S1=10;}
}
break;

case '佰':
for(l=0;l<m-1;l++)
{
if(Char[l]=='万')
{
if (l>=2)
{ if (l小于n)
{S1=1000000;}
else
{S1=100;}
}
else
{S1=100;}
}
else
{S1=100;}
}
break;
case '仟':
for(l=0;l<m-1;l++)
{
if(Char[l]=='万')
{
if (l>=2)
{ if (lDn) //小于号在预览里边出不来,不好意思 汉语代替 <
{S1=10000000;}
else
{S1=1000;}
}
else
{S1=1000;}
}
else
{S1=1000;}
}
break;
case '万':
S1=10000;break;
case '亿':
S1=100000000;break;

}
switch(Char[n-1])
{
case '壹':
S2=1;break;
case '贰':
S2=2;break;
case '叁':
S2=3;break;
case '肆':
S2=4;break;
case '伍':
S2=5;break;
case '陆':
S2=6;break;
case '柒':
S2=7;break;
case '捌':
S2=8;break;
case '玖':
S2=9;break;



}
result = result+S1*S2;
}

2006-03-13 08:48
laplas
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2006-2-28
收藏
得分:0 
可不可以考虑,不判断单位。
只判断里面的数字。
例如十一万九千八百四十二。
不管里面的“万”,“千”,“百“,“十”等单位。
直接写成119842
2006-03-13 10:22
laplas
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2006-2-28
收藏
得分:0 
以下是引用laplas在2006-3-13 10:22:00的发言:
可不可以考虑,不判断单位。
只判断里面的数字。
例如十一万九千八百四十二。
不管里面的“万”,“千”,“百“,“十”等单位。
直接写成119842

这样好象不行。:(

2006-03-13 10:28
likun_007
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-3-11
收藏
得分:0 
这个不行的,要是那么简单的话就好多了
2006-03-13 15:45
快速回复:请教各位大人:大写金额怎么变小写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036352 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved