如何数字转换为中文大写
现有一串阿拉伯数字123456,请设计一个实现方案将其转换为中文大写。例如转换后最终结果为十二万三千四百五十六。
------解决方案--------------------在精华区里找找,有
------解决方案--------------------参见:http://www.cnblogs.com/jembai/articles/1266207.html
------解决方案--------------------http://www.cnblogs.com/datacool/archive/2011/11/07/ExternClassUsing.html
------解决方案--------------------相当罗嗦。做成一个DLL卖钱吧。哈哈。
------解决方案--------------------你找出来了。
------解决方案--------------------还不如建个字库,一一对应,根据阿拉伯数字得出对应中文
------解决方案--------------------
------解决方案-------------------- static void Main(string[] args)
{
Dictionary<char, string> cc = new Dictionary<char, string>();
cc.Add('0', "零");
cc.Add('1', "一");
cc.Add('2', "二");
cc.Add('3', "三");
cc.Add('4', "四");
cc.Add('5', "五");
cc.Add('6', "六");
cc.Add('7', "七");
cc.Add('8', "八");
cc.Add('9', "九");
string bb = Console.ReadLine();
char [] aa = bb.ToCharArray();
foreach(char aaa in aa){
Console.WriteLine(cc[aaa]);
}
Console.ReadKey();
}
------解决方案--------------------这是我在精华区里看到的,不是本人写的,但应该可以用
希望可以对楼主有用,实在不行,你到精华区里找找
为了方便,我就给贴出来了
// 数字转换成大写金额
// 例如:(new Money(200)).ToString() == "贰佰元"
namespace Skyiv.Util
{
using System.Text;
class Test
{
static void Main()
{
for (;;)
{
System.Console.Write("金额: ");
string s = System.Console.ReadLine();
decimal m;
try { m = decimal.Parse(s); }
catch { break; }
System.Console.WriteLine("大写: " + new Money(m));
}
}
}
// 该类重载的 ToString() 方法返回的是大写金额字符串
class Money
{
public string Yuan = "元"; // “元”,可以改为“圆”、“卢布”之类
public string Jiao = "角"; // “角”,可以改为“拾”
public string Fen = "分"; // “分”,可以改为“美分”之类
static string Digit = "零壹贰叁肆伍陆柒捌玖"; // 大写数字
bool isAllZero = true; // 片段内是否全零
bool isPreZero = true; // 低一位数字是否是零
bool Overflow = false; // 溢出标志
long money100; // 金额*100,即以“分”为单位的金额
long value; // money100的绝对值
StringBuilder sb = new StringBuilder(); // 大写金额字符串,逆序
// 只读属性: "零元"
public string ZeroString
{
get { return Digit[0] + Yuan; }
}
// 构造函数
public Money(decimal money)
{
try { money100 = (long)(money * 100m); }
catch { Overflow = true; }
if (money100 == long.MinValue) Overflow = true;
}
// 重载 ToString() 方法,返回大写金额字符串
public override string ToString()
{
if (Overflow) return "金额超出范围";
if (money100 == 0) return ZeroString;