已有57人关注
有关小写金额转换为大写金额的问题
发表在C#图书答疑 2011-12-05
是否精华
版块置顶:
在《C#开发之道》的第15章技巧04-将小写金额转换为大写金额,有一行看不明白,请给位大侠指点(红色部分):
private void button1_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(textBox1.Text.Trim()))
            {
                MessageBox.Show("请输入小写金额","信息提示");
                return;
            }

            String[] Scale = { "分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "兆", "拾", "佰", "仟" };
            String[] Base = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
            String Temp = textBox1.Text.ToString();
            String Info = null;
            int index = Temp.IndexOf(".", 0, Temp.Length);//判断是否有小数点
            if (index != -1)
            {
                Temp = Temp.Remove(Temp.IndexOf("."), 1);
                for (int i = Temp.Length; i > 0; i--)
                {
                    int Data = Convert.ToInt16(Temp[Temp.Length - i]);
                   [font color=#FF0000] Info += Base[Data - 48];
[/font]                    Info += Scale[i - 1];
                }
            }
            else
            {
                for (int i = Temp.Length; i > 0; i--)
                {

                    int Data = Convert.ToInt16(Temp[Temp.Length - i]);
                    Info += Base[Data - 48];
                    Info += Scale[i + 1];
                }
            }
            textBox2.Text = Info;
        }
分享到:
精彩评论 1
东方_mrkj
学分:0 LV1
2011-12-06
沙发
读者你好:
    我们知道,在Unicode字符中,第48~57号为0~9十个阿拉伯数字,也就是48对应着0这个数字,而Data是一个在“48~57”之间的Unicode字符,这样Data-48就表示某一个阿拉伯数字,而Data-48这个数字的值恰恰就是其对应汉子在Base数组中的索引,这样通过Base[Data-48]就可以找到汉子了。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照