| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 400 人关注过本帖
标题:[求助]字符串操作问题.
只看楼主 加入收藏
史前大暴龙
Rank: 1
等 级:新手上路
帖 子:375
专家分:0
注 册:2005-11-22
收藏
 问题点数:0 回复次数:6 
[求助]字符串操作问题.
例子:
有个数156.36,我要把他变成中国的大写:壹百五十陆元三分陆 ,用个函数变过来,要怎么样弄啊??
搜索更多相关主题的帖子: 字符 
2007-03-07 18:40
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 
这个还没用过
查查看,不知道在SQL函数中有没相关的函数转换

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-03-08 09:26
zzb_ks
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2005-7-6
收藏
得分:0 

如果是字符串的话,就用字符串的比较函数,一个一个比较就行了,在输出成大写的就行了


2007-03-08 09:55
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
156.36
转换成字符串string型
把亿、千、百、十、万、千、百、十、元存到一个数组,把角、分存到另一个数组
判断“.”之前的长度和之后的长度,3位就从百,2位就从十开始
然后小心各种特殊情况
总之很复杂

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2007-03-08 12:33
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 
以下是引用冰镇柠檬汁儿在2007-3-8 12:33:27的发言:

总之很复杂

不是把,有简单点的吗?


有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-03-08 12:38
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
就用数组.
将 '零','壹','贰','叁','肆','伍','陆','柒','捌','玖'放入一个数组
将 '圆','拾','佰','仟','角','分' 放入一个数据..再判断数字.

飘过~~
2007-03-08 12:46
史前大暴龙
Rank: 1
等 级:新手上路
帖 子:375
专家分:0
注 册:2005-11-22
收藏
得分:0 
已经弄好了,把他发上来,其实也不是自己一个人做的,是有个网上的朋友给了我一份JS的,我改了下,希望有需要的朋友也能得到帮助.

protected void Button1_Click(object sender, EventArgs e)
{
string num1=this.TextBox1.Text;
long num =Convert .ToInt64 ( Math.Round((Convert.ToDecimal (num1))*100));
this.Label1.Text = this.CutStr(num);
}
public string CutStr(long num)
{
string numberValue=num.ToString (); // 数字金额
string chineseValue=""; // 转换后的汉字金额
string String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
string String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位
int len = numberValue.Length; // numberValue 的字符串长度
string Ch1; // 数字的汉语读法
string Ch2; // 数字位的汉字读法
int nZero=0; // 用来计算连续的零值的个数
int String3=0; // 指定位置的数值
if(len>15){
Response .Write ("超出计算范围");
return "";
}
if (Convert .ToInt64 (numberValue)==0){
chineseValue = "零元整";
return chineseValue;
}
String2 = String2.Substring(String2.Length - len, len); // 取出对应位数的STRING2的值
for(int i=0; i<len; i++){
String3 =Convert .ToInt32 ( numberValue.Substring(i, 1)); // 取出需转换的某一位的值
if ( i != (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) ){
if ( Convert.ToInt32 (String3 )== 0 ){
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else if ( Convert.ToInt32 (String3) != 0 && nZero != 0 ){
Ch1 = "零" + String1.Substring(String3, 1);
Ch2 = String2.Substring(i, 1);
nZero = 0;
}
else{
Ch1 = String1.Substring(String3, 1);
Ch2 = String2.Substring(i, 1);
nZero = 0;
}
}
else{ // 该位是万亿,亿,万,元位等关键位
if( String3 != 0 && nZero != 0 ){
Ch1 = "零" + String1.Substring(String3, 1);
Ch2 = String2.Substring(i, 1);
nZero = 0;
}
else if ( String3 != 0 && nZero == 0 ){
Ch1 = String1.Substring(String3, 1);
Ch2 = String2.Substring(i, 1);
nZero = 0;
}
else if( String3 == 0 && nZero >= 3 ){
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else{
Ch1 = "";
Ch2 = String2.Substring(i, 1);
nZero = nZero + 1;
}
if( i == (len - 11) || i == (len - 3)){ // 如果该位是亿位或元位,则必须写上
Ch2 = String2.Substring(i, 1);
}
}
chineseValue = chineseValue + Ch1 + Ch2;
}
if ( String3 == 0 ){ // 最后一位(分)为0时,加上“整”
chineseValue = chineseValue + "整";
}
return chineseValue;
}

}

我不是最好,但我可以更好,大家一起加油了
2007-03-08 23:08
快速回复:[求助]字符串操作问题.
数据加载中...
 
   



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

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