I appologize for screwing up the initial thread Bubba. No excuses. I am reposting my changed code and hope everyone is still willing to help a newbie.
I have my code working but for the life of me I can't get is to write the results to the console. I'm sure its something simple. I just cant seem to get Console.Writeline to show it too me.
Main
Code:
class Program
{
static void Main(string[] args)
{
NumberString Demo = new NumberString(); //creating a new NumberString object
Demo.Number = 1234;
string NumberText = Demo.Text;
Demo.Text = "one million four hundred seventy five thousand fifteen";
int n = Demo.Number;
NumberString.numbervalue(Demo.Number); //calling my method "numbervalue"
Console.WriteLine();
Console.Read();
}
My new class
Code:
class NumberString
{
public int Number //"Number" is a property of class "NumberString"
{ get; set; }
public string Text //"Text" is a property of class "NumberString"
{ get; set; }
private static string[] undertwenty = new string[] //Numbers less than twenty
{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven",
"twelve", "thirteen", "fourteen", "fifteen", "sixten", "seventeen", "eighteen", "nineteen"};
private static string[] tens = new string[] //two digit numbers twenty and over
{ "", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninty" };
private static string[] bigs = new string[] //for numbers 3 digits and over
{ "hundred", "thousand", "million" };
public static string numbervalue(int Number)
{
if (Number == 0)
return undertwenty[0];
int[] groupdigits = new int[4];
int positive = Math.Abs(Number);
for (int i = 0; i < 4; i++) //seperate into groups
{
groupdigits[i] = positive % 1000;
positive /= 1000;
}
string[] grouptext = new string[4];
for (int i = 0; i < 4; i++)
grouptext[i] = digitstowords(groupdigits[i]);
string combined = grouptext[0];
bool add_and;
add_and = (groupdigits[0] > 0) && (groupdigits[0] < 100);
for (int i = 1; i < 4; i++)
{
if (groupdigits[i] != 0)
{
string prefix = grouptext[i] + " " + bigs[i];
if (combined.Length != 0)
prefix += add_and ? " and " : "' ";
add_and = false;
combined = prefix + combined;
}
}
if (Number < 0)
combined = "Negative " + combined;
return combined;
}
private static string digitstowords(int three_digits)
{
string grouptext = "";
int hundreds = three_digits / 100;
int Tens = three_digits % 100;
if (hundreds != 0)
{
grouptext += undertwenty[hundreds] + " Hundred";
if (Tens != 0)
grouptext += " and ";
}
int ten = Tens / 10;
int ones = Tens % 10;
if (ten >= 2)
{
grouptext += tens[ten];
if (ones != 0)
grouptext += " " + undertwenty[ones];
}
else if (Tens != 0)
grouptext += undertwenty[Tens];
return grouptext;
}
}
}