Skip to content

Instantly share code, notes, and snippets.

@AaronLayton
Created May 13, 2015 15:37
Show Gist options
  • Save AaronLayton/d25e4005d30dbb48a138 to your computer and use it in GitHub Desktop.
Save AaronLayton/d25e4005d30dbb48a138 to your computer and use it in GitHub Desktop.
Number to Words
@helper NumberToWords(int number){
// http://stackoverflow.com/questions/2729752/converting-numbers-in-to-words-c-sharp
if (number == 0){
<text>zero</text>
}
if (number < 0){
<text>minus @NumberToWords(Math.Abs(number))</text>
}
string words = "";
if ((number / 1000000) > 0)
{
words += NumberToWords(number / 1000000) + " million ";
number %= 1000000;
}
if ((number / 1000) > 0)
{
words += NumberToWords(number / 1000) + " thousand ";
number %= 1000;
}
if ((number / 100) > 0)
{
words += NumberToWords(number / 100) + " hundred ";
number %= 100;
}
if (number > 0)
{
if (words != ""){
words += "and ";
}
var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
if (number < 20) {
words += unitsMap[number];
}
else
{
words += tensMap[number / 10];
if ((number % 10) > 0){
words += "-" + unitsMap[number % 10];
}
}
}
@words;
}
// USAGE
// @NumberToWords(18)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment