代码分享:将数字转换为中文货币形式的工具方法
有一个非常实用的工具方法,能够将数字转换为中文货币形式。这个方法非常智能,能够处理正负数,并且以中文的货币形式展示出来。下面是这个方法的代码:
```csharp
public static string ConvertToChineseMoney(double money)
{
if (money < 0) throw new ArgumentOutOfRangeException("参数money不能为负值!");
string s = money.ToString("LEDCKEDCJEDCIEDCHEDCGEDCFEDC.0B0A");
s = Regex.Replace(s, @"((?<=-|^)[^1-9])|((?'z'0)[0A-E]((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
return Regex.Replace(s, ".", delegate(Match m) { return "零壹贰叁肆伍陆柒捌玖分角拾佰仟萬億兆京垓秭穰"[m.Value[0]].ToString(); });
}
```
调用这个方法,可以方便地将数字转换为中文货币形式。例如:
```csharp
Random r = new Random();
for (int i = 0; i < 10; i++)
{
double m = r.Next() / 100.0;
Response.Write(m + "-" + ConvertToChineseMoney(m) + "
");
}
```
运行结果的示例:
5970370.36-伍佰玖拾柒萬零叁佰柒拾元叁角陆分
6521548.6-陆佰伍拾贰萬壹仟伍佰肆拾捌元陆角
...以此类推,其他的数字也会被转换成相应的中文货币形式。
此方法运用了正则表达式,可以处理复杂的数字格式,确保转换的准确性。无论是日常工作还是生活需求,都能带来极大的便利。当需要展示中文货币形式时,不妨试试这个方法。