public string Write(int number) { if (number == 0) { return(_tensDictionary[number]); } if (number < 10) { return(_digitWriter.Write(number)); } if (number >= 10 && number < 20) { return(_tensDictionary[number]); } if (number > 99) { throw new ArgumentOutOfRangeException("number", "Only double digits are allowed."); } var doubleDigitBase = number - (number % 10); return(string.Format("{0} {1}", _tensDictionary[doubleDigitBase], this.Write(number % 10)).Trim()); }
public string Write(int number) { if (number == 0) { return(""); } int hundredIndex = number / 100; if (hundredIndex == 0) { return(_tensWriter.Write(number)); } string hundredsNumber = string.Format("{0} hundred", _tensWriter.Write(hundredIndex)); string tensNumber = _tensWriter.Write(number % 100); return(string.IsNullOrEmpty(tensNumber) ? hundredsNumber : string.Format("{0} and {1}", hundredsNumber, tensNumber).Trim()); }
public string Write(int number) { if (number == 0) { return(string.Empty); } var writtenNumber = new StringBuilder(); foreach (var unit in _unitsDictionary.Keys.OrderByDescending(u => u)) { var unitNumber = number / unit; if (unitNumber != 0) { writtenNumber.Append(_hundredsWriter.Write(unitNumber) + string.Format(" {0} ", _unitsDictionary[unit])); } number = number % unit; } return(writtenNumber.ToString().Trim()); }