有些方法名字我可能记得不对了,你看需要稍微改改就可以了。
这个调用是静态的,不需要new这个类。
使用的时候直接用:
CastToChineseNumber.DoCast("xxx-400");
这样的形式就可以了public class CastToChineseNumber {
// 实施转换的主方法,静态函数。
public static string DoCast(string input) {
if (String.IsNullOrEmpty(input)) return ""; // 如果输入为空则返回空
string src = input; // 原始字符串的副本
string ret = ""; // 准备返回的结果字符串
for (int i = 0; i < src.Length; i++) {
switch src.Get(i) { // 获取当前位置的字符,可能C#里面不叫Get吧,你自己再看看相关方法,下面一样需要替换
case "-": ret += src.Get(i) // 去掉"-"
break;
case "0": ret += "零";
break;
case "1": ret += "壹";
break;
case "2": ret += "贰";
break;
// ......
// 0-9 依次写成上面那样的汉字,我就不逐个给你写了
defalut: ret += src.Get(i); // 其他文字逐个复制过来
break;
}
}
return ret;
}
}
这个调用是静态的,不需要new这个类。
使用的时候直接用:
CastToChineseNumber.DoCast("xxx-400");
这样的形式就可以了public class CastToChineseNumber {
// 实施转换的主方法,静态函数。
public static string DoCast(string input) {
if (String.IsNullOrEmpty(input)) return ""; // 如果输入为空则返回空
string src = input; // 原始字符串的副本
string ret = ""; // 准备返回的结果字符串
for (int i = 0; i < src.Length; i++) {
switch src.Get(i) { // 获取当前位置的字符,可能C#里面不叫Get吧,你自己再看看相关方法,下面一样需要替换
case "-": ret += src.Get(i) // 去掉"-"
break;
case "0": ret += "零";
break;
case "1": ret += "壹";
break;
case "2": ret += "贰";
break;
// ......
// 0-9 依次写成上面那样的汉字,我就不逐个给你写了
defalut: ret += src.Get(i); // 其他文字逐个复制过来
break;
}
}
return ret;
}
}
解决方案 »
- 客户机同时修改服务器数据出错
- winform模拟表单提交,除header,cookie,postdata之外还跟什么有关?
- Gridview Checkbox readonly 并且不改变背景色
- PageDataSource类在什么命名空间,是做什么用的?
- c#转vb.net代码,请帮助!
- 一个郁闷的问题,请大家帮忙!!
- 画完五角星后,点橡皮擦工具怎么实现擦掉?
- datagrid控件同一列数据中固定行和下面内容行的Alignment属性是否可以不一样
- 请教,奇怪的windows服务的问题
- 如何用C#实现在RichTextBox中添加图片水印。。
- 如何把两列用正则语句匹配出来数据写入gridview?
- ASPXGridview的统计汇总问题
就是需要LZ一個Switch結構
在加上判斷數字的位數.
這樣簡單的東西感覺LZ自己應該能寫出來吧..
{
if (n == 0) return "零";
if (n > 10000) throw new Exception("");
string[] chara = { "", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "零", "", "拾", "佰", "仟"};
string tempStr="";
List<int> charNum = new List<int>();
string result="";
int i = 0;
do
{ charNum.Add(n % 10);
n = (int)n / 10;
if (charNum[i] == 0)
{
if (!(i > 0 && charNum[i - 1] == 0)) tempStr = chara[10];
}
int temp2 = ((int)(charNum[i] - 10) / 10) + 1;
result = tempStr + chara[charNum[i]] + chara[11 + i * temp2] + result;
i++;
tempStr = "";
if (n < 1) break;
} while (true);
if (result.EndsWith("零")) return result.Remove(result.Length - 1) + name + "零";
return result + name; }
要是这么写,等着银行退票吧,432225=肆拾叁万贰仟贰佰贰拾伍元整现在:432220.50=肆拾叁万贰仟贰佰贰拾元伍角整过去:432220.50=肆拾叁万贰仟贰佰贰拾元零伍角整
98年时,我给别人写过一个大小写转换的函数(MFC的),当时给了我3000元,并不是他们不会写代码,而且让他们用笔都写不出来