亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#把數字轉換成大寫金額的代碼實例

2020-01-24 02:40:35
字體:
來源:轉載
供稿:網友

實現代碼:

復制代碼 代碼如下:

// 例如:(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;
            string[] Unit = {
                Yuan,
                "萬",
                "億",
                "萬",
                "億億"
            };
            value = System.Math.Abs(money100);
            ParseSection(true);
            for (int i = 0; i < Unit.Length && value > 0; i++) {
                if (isPreZero && !isAllZero) sb.Append(Digit[0]);
                if (i == 4 && sb.ToString().EndsWith(Unit[2])) sb.Remove(sb.Length - Unit[2].Length, Unit[2].Length);
                sb.Append(Unit[i]);
                ParseSection(false);
                if ((i % 2) == 1 && isAllZero) sb.Remove(sb.Length - Unit[i].Length, Unit[i].Length);
            }
            if (money100 < 0) sb.Append("負");
            return Reverse();
        }
        // 解析“片段”: “角分(2位)”或“萬以內的一段(4位)”
        void ParseSection(bool isJiaoFen) {
            string[] Unit = isJiaoFen ? new string[] {
                Fen,
                Jiao
            }: new string[] {
                "",
                "拾",
                "佰",
                "仟"
            };
            isAllZero = true;
            for (int i = 0; i < Unit.Length && value > 0; i++) {
                int d = (int)(value % 10);
                if (d != 0) {
                    if (isPreZero && !isAllZero) sb.Append(Digit[0]);
                    sb.AppendFormat("{0}{1}", Unit[i], Digit[d]);
                    isAllZero = false;
                }
                isPreZero = (d == 0);
                value /= 10;
            }
        }
        // 反轉字符串
        string Reverse() {
            StringBuilder sbReversed = new StringBuilder();
            for (int i = sb.Length - 1; i >= 0; i--) sbReversed.Append(sb[i]);
            return sbReversed.ToString();
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品激情av电影在线观看| 性色av香蕉一区二区| 日韩精品在线电影| 国产精品手机播放| 色琪琪综合男人的天堂aⅴ视频| 一区二区三区国产在线观看| 亚洲欧美三级在线| 成人黄色在线免费| 全球成人中文在线| 亚洲视频在线免费看| 国产亚洲成精品久久| 亚洲久久久久久久久久| 成人精品久久一区二区三区| 国产一区私人高清影院| www.日本久久久久com.| 成人午夜在线影院| 正在播放欧美一区| 国产精品亚洲精品| 日av在线播放中文不卡| 久久亚洲影音av资源网| 久久伊人精品视频| 久久精品精品电影网| www.欧美精品一二三区| 精品视频久久久久久久| 欧美噜噜久久久xxx| 亚洲一区二区三区四区在线播放| 国产欧美精品xxxx另类| 久久99国产精品自在自在app| 久久成人精品视频| 欧美精品免费播放| 亚洲欧洲av一区二区| 精品国产户外野外| 亚洲国产精品成人精品| 一区二区三区www| 欧美一区二粉嫩精品国产一线天| 欧美午夜宅男影院在线观看| 亚洲免费中文字幕| 欧美超级乱淫片喷水| 最近2019中文字幕在线高清| 亚洲国产精品久久久久秋霞蜜臀| 国产一区二区av| 精品久久香蕉国产线看观看gif| 91av视频在线观看| 欧美中文字幕在线播放| 国产成人激情视频| 啪一啪鲁一鲁2019在线视频| 国产精品福利无圣光在线一区| 欧美性猛交xxxx免费看久久久| 欧美极品少妇全裸体| 91亚洲精品在线观看| 日韩av免费在线| 精品在线欧美视频| 国产成人97精品免费看片| 这里只有视频精品| 久久久久久91香蕉国产| 免费91麻豆精品国产自产在线观看| 久久99国产精品久久久久久久久| 国产+人+亚洲| 91成人福利在线| 国产欧美婷婷中文| 久久人人爽人人爽爽久久| 在线免费观看羞羞视频一区二区| 成人亚洲激情网| 91高清视频免费观看| 国产精品视频午夜| 亚洲字幕一区二区| 日韩视频精品在线| 欧美视频一区二区三区…| 91香蕉亚洲精品| 亚洲的天堂在线中文字幕| 欧洲亚洲免费视频| 亚洲一区二区久久| 97在线日本国产| 色综合伊人色综合网站| 91久久久久久久久久久| 懂色av中文一区二区三区天美| 亚洲电影在线看| 欧美性极品xxxx娇小| 在线精品高清中文字幕| 欧美高清视频免费观看| 97碰在线观看| 亚洲精品一区二区在线| 国产成人福利夜色影视| 欧美视频在线观看免费| 欧美一区二区三区艳史| 国产精品电影久久久久电影网| 国产精品www| 欧美成人免费va影院高清| www.美女亚洲精品| 4438全国亚洲精品在线观看视频| 日韩一中文字幕| 亚洲曰本av电影| 日韩欧美亚洲一二三区| 欧美激情精品在线| 亚洲成人网久久久| 国产精品劲爆视频| 色综合91久久精品中文字幕| 岛国av一区二区三区| 88国产精品欧美一区二区三区| 久久这里只有精品99| 亚洲大胆美女视频| 红桃av永久久久| 欧美色欧美亚洲高清在线视频| 欧美日韩在线另类| 97国产精品人人爽人人做| 欧美在线一级va免费观看| 久久99国产精品自在自在app| 国产日韩在线看| 久久久免费电影| 亚洲成人aaa| 日韩欧美在线视频免费观看| 九九九热精品免费视频观看网站| 国产精品一区av| 亚洲精品免费一区二区三区| 欧美在线一级va免费观看| 性色av一区二区咪爱| 久久九九免费视频| 中日韩午夜理伦电影免费| 色妞色视频一区二区三区四区| 久久久影视精品| 久久久久久久久综合| 国产精品18久久久久久麻辣| 欧美一级免费看| 久久久久久91香蕉国产| 欧美大胆a视频| 中文字幕欧美日韩va免费视频| 久久久国产精品视频| 91精品视频观看| 亚洲精品一区久久久久久| 成人精品久久av网站| 欲色天天网综合久久| 中文字幕日韩av电影| 亚洲最新中文字幕| 在线观看欧美日韩国产| 亚洲一区二区中文字幕| 色偷偷av亚洲男人的天堂| 91中文精品字幕在线视频| 欧美性一区二区三区| 精品国产欧美一区二区三区成人| 91色精品视频在线| 欧美性猛交丰臀xxxxx网站| 久久精品亚洲精品| 国产精品久久久久久搜索| 国产97在线观看| 国产精品专区一| 91在线高清视频| 欧美激情综合色综合啪啪五月| 在线电影欧美日韩一区二区私密| 亚洲国产精品久久久久秋霞蜜臀| 久久色免费在线视频| 日韩av中文在线| 亚洲精品自产拍| 国产精品高潮粉嫩av| 亚洲精品视频在线播放| 亚洲第一视频网站| 一色桃子一区二区| 欧美精品在线免费观看| 亚洲午夜性刺激影院| 日韩国产精品视频| 久久久成人精品| 国内精品久久久久久中文字幕| 亚洲二区中文字幕| 精品一区精品二区| 国产精品久久久久久久久久久久久|