很精妙的货币换算。使用table-driven方法大家都知道,但这一串0用的很有技巧。
public class 数字换算为中文货币
{
private static string digit = "零壹贰叁肆伍陆柒捌玖";
private static string Dom = "仟佰拾万仟佰拾亿仟佰拾万仟佰拾元角分里";
public static string GetChinese(double value)
{
string valueStr = value.ToString("0000000000000000.000");
valueStr = valueStr.Remove(valueStr.IndexOf('.'), 1);
StringBuilder chBuilder = new StringBuilder();
for (int i = 0; i < valueStr.Length; i++)
{
if (valueStr[i] != '0')
{
chBuilder.Append(digit[valueStr[i] - '0']);
chBuilder.Append(Dom[i]);
}
else if (i > 0 && valueStr[i - 1] != '0')
{
chBuilder.Append(digit[valueStr[i] - '0']);
}
}
return chBuilder.ToString().Trim("零".ToCharArray());
}
}