コード例 #1
0
        public static string ToText(int[] digits, int tripletNumber)
        {
            var tripletDigits = GetDigits(digits, tripletNumber);
            var triplet       = new Triplet(tripletDigits, tripletNumber);

            return(triplet.ToString());
        }
コード例 #2
0
        public string SpellNumber(int number)
        {
            // parse digits and reverse their order
            var digits = number.ToString().Select(digit => int.Parse(digit.ToString())).Reverse().ToArray();

            var numberNames = new List <string>();

            // calc the number of triplets
            var tripletCount = (int)Math.Ceiling(digits.Length / 3.0);

            for (var tripletNumber = 0; tripletNumber < tripletCount; tripletNumber++)
            {
                var triplet = Triplet.ToText(digits, tripletNumber);
                if (string.IsNullOrEmpty(triplet))
                {
                    continue;
                }

                // add thousands multiplier if there is more then one triplet and we already have the first one
                if (tripletCount > 0 && tripletNumber > 0)
                {
                    numberNames.Add(NumberNames.Triplets[tripletNumber]);
                }

                numberNames.Add(triplet);
            }

            // join all triplets
            var result = string.Join(" ", numberNames.AsEnumerable().Reverse());

            return(result);
        }