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); } }
public void ShouldGetHundredMillion() { var t = new MillionPlace(300000000); Assert.AreEqual(t.ToWord(), "Three Hundred Million"); var t1 = new MillionPlace(301000000); Assert.AreEqual(t1.ToWord(), "Three Hundred and One Million"); var t2 = new MillionPlace(321000000); Assert.AreEqual(t2.ToWord(), "Three Hundred and Twenty One Million"); }
public void ShouldGetTenMillion() { var t = new MillionPlace(3000000); Assert.AreEqual(t.ToWord(), "Three Million"); var t1 = new MillionPlace(31000000); Assert.AreEqual(t1.ToWord(), "Thirty One Million"); var t2 = new MillionPlace(99999000); Assert.AreEqual(t2.ToWord(), "Ninety Nine Million"); }