日期:2014-05-18  浏览次数:20794 次

那位大哥能给一个好一点的好一点大人民币小写转大写的涵数!
那位大哥能给一个好一点的好一点人民币小写转大写的涵数!谢谢!

我在网上找了好多,但都有BUG,有些是大于一元以上的才能转,小于一元的就出错,有些是元角分表示得不正确,例如150则表示一百五十零元,所以说那位大哥能给个比较完美的人民币小写转大写的涵数!谢谢!


------解决方案--------------------
自己写个啊,你自己写的才是最好用的,用别人写的你心里难受
------解决方案--------------------
!,,网上找了,自己按想法修改撒
------解决方案--------------------
把找到的改成你自己认为合适的,不要连改都不想改。
------解决方案--------------------
C# code
public string ConvertToChinese(string stringNumber)
        {
            string[] Price = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟" };
            string[] PriceDot = { "角", "分", "厘" };
            string[] Number = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };

            string MoneyPrice = stringNumber.ToString();
            string MoneyPriceDot = string.Empty;
            if (stringNumber.IndexOf(".") > 1)
            {
                MoneyPrice = stringNumber.Split('.')[0];
                MoneyPriceDot = stringNumber.Split('.')[1];
            }
            string part1 = string.Empty;
            string part2 = string.Empty;
            for (int i = 0; i < MoneyPrice.Length; i++)
            {
                int numberIndex = Convert.ToInt32(MoneyPrice[i].ToString());
                part1 += Number[numberIndex];
                part1 += Price[MoneyPrice.Length - i - 1];
            }
            if (MoneyPriceDot.Length > 0)
            {
                if (Convert.ToInt32(MoneyPriceDot) > 0)
                {
                    for (int i = 0; i < MoneyPriceDot.Length; i++)
                    {
                        int numberIndex = Convert.ToInt32(MoneyPriceDot[i].ToString());
                        part2 += Number[numberIndex];
                        part2 += PriceDot[i];
                    }
                }
            }

            part1 = part1.Replace("零仟", "零");
            part1 = part1.Replace("零佰", "零");
            part1 = part1.Replace("零拾", "零");
            part1 = part1.Replace("零元", "元");
            part1 = part1.Replace("零零零万", "");
            part1 = part1.Replace("零零零", "零");
            part1 = part1.Replace("零零", "零");
            part1 = part1.Replace("零万", "万");
            part1 = part1.Replace("零亿", "亿");

            part2 = part2.Replace("零角", "零");
            part2 = part2.Replace("零分", "零");
            part2 = part2.Replace("零厘", "");
            part2 = part2.Replace("零零", "零");
            return part1 + part2;
        }

------解决方案--------------------
网上很多的啊。。。
找个查不多的 。。
根据自己的实际情况修改下 。。
想在网上找一个适合自己的开发需求的 确实不多。。。。LZ要动动手啊。。