private void Init(decimal number)
        {
            //maximum number 999 million.
            if (number < 0 || number > 999999999)
            {
                throw new InvalidNumberRangeException();
            }

            var n = (int)number;

            if (Validator.ValidateMillionPlace(n))
            {
                million = new MillionPlace(n);
            }

            var n1 = (n >= 1000000) ? n - (n / 1000000 * 1000000) : n;

            if (Validator.ValidateThousandPlace(n1))
            {
                thousand = new ThousandPlace((int)n1);
            }

            var n2 = (n1 >= 1000) ? n - (n / 1000 * 1000) : n1;

            if (Validator.ValidateHundredPlace(n2))
            {
                hundred = new HundredPlace((int)n2);
            }

            var n3 = (n2 >= 100) ? n - (n / 100 * 100) : n2;

            if (Validator.ValidateTenPlace(n3))
            {
                ten = new TenPlace((int)n3);
            }
            else
            {
                var n4 = (n3 >= 10) ? n - (n / 10 * 10) : n3;
                if (Validator.ValidateOnePlace(n4))
                {
                    one = new OnePlace((int)n4);
                }
            }

            var centStr   = "";
            var centArray = number.ToString("0.00").Split(".".ToCharArray());

            if (centArray.Length == 2)
            {
                centStr = centArray[1];
            }
            var c = 0;

            if (int.TryParse(centStr, out c) && Validator.ValidateCentPlace(c))
            {
                cent = new CentPlace(c);
            }
        }
示例#2
0
        public void ShouldGetHundredThousand()
        {
            var t = new ThousandPlace(300000);

            Assert.AreEqual(t.ToWord(), "Three Hundred Thousand");

            var t1 = new ThousandPlace(333000);

            Assert.AreEqual(t1.ToWord(), "Three Hundred and Thirty Three Thousand");
        }
示例#3
0
        public void ShouldGetTenThousand()
        {
            var t = new ThousandPlace(30000);

            Assert.AreEqual(t.ToWord(), "Thirty Thousand");

            var t1 = new ThousandPlace(31000);

            Assert.AreEqual(t1.ToWord(), "Thirty One Thousand");

            var t2 = new ThousandPlace(99900);

            Assert.AreEqual(t2.ToWord(), "Ninety Nine Thousand");
        }
示例#4
0
        public void ShouldGetThousand()
        {
            var t = new ThousandPlace(3000);

            Assert.AreEqual(t.ToWord(), "Three Thousand");
        }