In the computing world, the convention used for grouping of digits is based on international standards which generally follows American practice. It means that digits are grouped in groups of two digits each, i.e. thousands, millions, billions, etc. However, people in India are habituated to groups of three, two, two... This groups form the thousands, lakhs, crores, etc. To solve this problem, a function has already been posted on CodeProject by me for converting any number to the groupings of thousands, lakhs, crores, etc. In continuation of this, the function here converts any number to the number in words with digit grouping of thousands, lakhs, crores, etc.
This function is in Visual Basic and is based on the knowledge base article of Microsoft. The original article converts the number to the international digit grouping, i.e. thousands, millions, billions, etc.
Using the Code
As the function is written in Visual Basic, the same may be used in any application using Visual Basic as the scripting language. For using the code in Excel, Word, Access, simply copy and paste the full code in the Visual Basic module and use the function.
How It Works
The function is named as
NumberToWords. This accepts a parameter of type variant. First, the function checks the existence of decimal in the number passed as parameter. If decimal exists, it constructs the word for paisa. After removing the decimal digits from the number, it converts digits, tens and hundreds by using routine
ConvertHundreds respectively. It constructs and returns a
string containing the number in words with rupees and paisa as prefix and suffix.
- 16th February, 2004: Initial post