Showing posts with label Convert Decimal Amount To Text. Show all posts
Showing posts with label Convert Decimal Amount To Text. Show all posts

Tuesday, October 13, 2009

Convert Decimal Amount To Text

public string ConvertToAmountInText(double numberToConvert, bool BlankIfZero, bool ConvertDecimalPart)
{

long Number = (long)numberToConvert;
string strNumberInText = "";

if (Number == 0)
return (BlankIfZero ? "" : "Zero");
else if (Number >= 1 && Number <= 19)
{
string[] numbers = {"One", "Two", "Three", "Four",
"Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
"Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen",
"Seventeen", "Eighteen", "Nineteen"};
strNumberInText = numbers[Number - 1];
}
else if (Number >= 20 && Number <= 99)
{
string[] numbers = { "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" };
strNumberInText = numbers[Number / 10 - 2] + " " + ConvertToAmountInText(Number % 10, true, false);
}
else if (Number >= 100 && Number <= 999)
{
strNumberInText = ConvertToAmountInText(Number / 100, true, false) + " Hundred " + ConvertToAmountInText(Number % 100, true, false);
}
else if (Number >= 1000 && Number <= 999999)
{
strNumberInText = ConvertToAmountInText(Number / 1000, true, false) + " Thousand " + ConvertToAmountInText(Number % 1000, true, false);
}
else if (Number >= 1000000 && Number <= 999999999)
{
strNumberInText = ConvertToAmountInText(Number / 1000000, true, false) + " Million " + ConvertToAmountInText(Number % 1000000, true, false);
}
else if (Number >= 1000000000)
{
strNumberInText = ConvertToAmountInText(Number / 1000000000, true, false) + " Billion " + ConvertToAmountInText(Number % 1000000, true, false);
}

if (ConvertDecimalPart)
{
double dblDecimalPart = 0.00;
dblDecimalPart = numberToConvert - ((long)numberToConvert);
strNumberInText += " and " + dblDecimalPart.ToString("F").Substring(2) + '/' + Math.Pow(10, dblDecimalPart.ToString("F").Length - 2).ToString();
}

return strNumberInText;
}