代码从csdn复制,未做测试
public static class ChineseNumberUtil |
{ |
|
/// <summary> |
/// 将中文数字转换成阿拉伯数字 |
/// </summary> |
/// <param name="cnNumber"></param> |
/// <returns></returns> |
static int ConverToDigit( string cnNumber) |
{ |
int result = 0; |
int temp = 0; |
foreach ( char c in cnNumber) |
{ |
int temp1 = ToDigit(c); |
if (temp1 == 10000) |
{ |
result += temp; |
result *= 10000; |
temp = 0; |
} |
else if (temp1 > 9) |
{ |
if (temp1 == 10 && temp == 0) temp = 1; |
result += temp * temp1; |
temp = 0; |
} |
else temp = temp1; |
} |
result += temp; |
return result; |
} |
|
/// <summary> |
/// 将中文数字转换成阿拉伯数字 |
/// </summary> |
/// <param name="cn"></param> |
/// <returns></returns> |
static int ToDigit( char cn) |
{ |
int number = 0; |
switch (cn) |
{ |
case '壹' : |
case '一' : |
number = 1; |
break ; |
case '两' : |
case '贰' : |
case '二' : |
number = 2; |
break ; |
case '叁' : |
case '三' : |
number = 3; |
break ; |
case '肆' : |
case '四' : |
number = 4; |
break ; |
case '伍' : |
case '五' : |
number = 5; |
break ; |
case '陆' : |
case '六' : |
number = 6; |
break ; |
case '柒' : |
case '七' : |
number = 7; |
break ; |
case '捌' : |
case '八' : |
number = 8; |
break ; |
case '玖' : |
case '九' : |
number = 9; |
break ; |
case '拾' : |
case '十' : |
number = 10; |
break ; |
case '佰' : |
case '百' : |
number = 100; |
break ; |
case '仟' : |
case '千' : |
number = 1000; |
break ; |
case '萬' : |
case '万' : |
number = 10000; |
break ; |
case '零' : |
default : |
number = 0; |
break ; |
} |
return number; |
} |
|
/// <summary> |
/// 将中文数字转换成阿拉伯数字 |
/// </summary> |
/// <param name="cnDigit"></param> |
/// <returns></returns> |
static long ToLong( string cnDigit) |
{ |
long result = 0; |
string [] str = cnDigit.Split( '亿' ); |
result = ConverToDigit(str[0]); |
if (str.Length > 1) |
{ |
result *= 100000000; |
result += ConverToDigit(str[1]); |
} |
return result; |
} |
|
|
}