123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using System;
- namespace UICatalog;
- public static class NumberToWords
- {
- private static readonly string [] tens =
- {
- "", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"
- };
- private static readonly string [] units =
- {
- "Zero",
- "One",
- "Two",
- "Three",
- "Four",
- "Five",
- "Six",
- "Seven",
- "Eight",
- "Nine",
- "Ten",
- "Eleven",
- "Twelve",
- "Thirteen",
- "Fourteen",
- "Fifteen",
- "Sixteen",
- "Seventeen",
- "Eighteen",
- "Nineteen"
- };
- public static string Convert (long i)
- {
- if (i < 20)
- {
- return units [i];
- }
- if (i < 100)
- {
- return tens [i / 10] + (i % 10 > 0 ? " " + Convert (i % 10) : "");
- }
- if (i < 1000)
- {
- return units [i / 100]
- + " Hundred"
- + (i % 100 > 0 ? " And " + Convert (i % 100) : "");
- }
- if (i < 100000)
- {
- return Convert (i / 1000)
- + " Thousand "
- + (i % 1000 > 0 ? " " + Convert (i % 1000) : "");
- }
- if (i < 10000000)
- {
- return Convert (i / 100000)
- + " Lakh "
- + (i % 100000 > 0 ? " " + Convert (i % 100000) : "");
- }
- if (i < 1000000000)
- {
- return Convert (i / 10000000)
- + " Crore "
- + (i % 10000000 > 0 ? " " + Convert (i % 10000000) : "");
- }
- return Convert (i / 1000000000)
- + " Arab "
- + (i % 1000000000 > 0 ? " " + Convert (i % 1000000000) : "");
- }
- public static string ConvertAmount (double amount)
- {
- try
- {
- var amount_int = (long)amount;
- var amount_dec = (long)Math.Round ((amount - amount_int) * 100);
- if (amount_dec == 0)
- {
- return Convert (amount_int) + " Only.";
- }
- return Convert (amount_int) + " Point " + Convert (amount_dec) + " Only.";
- }
- catch (Exception e)
- {
- throw new ArgumentOutOfRangeException (e.Message);
- }
- }
- }
|