Currency Amount (Indian Lakh/Crore)
finance.currency.amount_lakhIndian numbering system with irregular grouping: first three digits, then groups of two (XX,XX,XXX pattern). Lakh = 1,00,000 (100k), Crore = 1,00,00,000 (10M). Serves 1.4 billion people. Rupee symbol prefix. Period decimal separator.
Worked samples
DuckDB 1.5.5 · finetype 0.6.64
| Value | As VARCHAR | numeric_value | symbol |
|---|---|---|---|
| ₹12,34,567.89 | 1234567.89 | 1234567.89 | ₹ |
| ₹1,00,000.00 | 100000.00 | 100000.00 | ₹ |
| ₹99,999.50 | 99999.50 | 99999.50 | ₹ |
| Rs. 1,23,456.78 | 123456.78 | 123456.78 | Rs. |
| ₹1,00,00,000.00 | 10000000.00 | 10000000.00 | ₹ |
Shape
^[₹]?(?:Rs\.?\s?)?[0-9]{1,2}(,[0-9]{2})*(,[0-9]{3})(\.[0-9]{1,2})?$| Value | Length | Shape |
|---|---|---|
| ₹12,34,567.89 | 13 | matches |
| ₹1,00,000.00 | 12 | matches |
| ₹99,999.50 | 10 | matches |
| Rs. 1,23,456.78 | 15 | matches |
| ₹1,00,00,000.00 | 15 | matches |
| ₹12,34,567.899 | 14 | rejected: one character extra |
Background
Origin
In the Indian numbering system, a lakh is one hundred thousand and a crore is ten million.[1] A crore is equal to 100 lakh.[2] The word lakh derives from the Sanskrit lakṣa, which was used as the numeral for 100,000 in Gupta-era Classical Sanskrit.[3] The word crore derives from the Prakrit kroḍi, which in turn comes from the Sanskrit koṭi.[2]
The Indian numbering system groups the first three digits to the left of the decimal point, as the international system does.[1] After the first three digits, the Indian numbering system groups by two digits.[1] Wikipedia's article on the Indian numbering system says the two-digit grouping aligns with the naming of quantities at multiples of 100.[1] In the Indian convention of digit grouping, a lakh is written 1,00,000 and a crore 1,00,00,000.[1] The Indian numbering system uses a period as the decimal separator and the comma for grouping.[1]
The Indian rupee sign ₹ was first presented to the public by the Government of India on 15 July 2010.[4] The ₹ sign was designed by D. Udaya Kumar.[4] The Indian rupee sign was given the code point U+20B9 in Unicode 6.0, released on 12 October 2010.[4] Until the ₹ sign came fully into use, the Indian rupee was commonly signified by the abbreviation Rs, a notation shared with several other countries.[4]
Use
Unicode's LDML specification allows a number pattern to have a primary grouping size for the least significant digits and a different secondary grouping size for the rest.[5] The LDML specification gives the pattern #,##,##0 as the case of a primary grouping of 3 and a secondary grouping of 2, formatting 123456789 as 12,34,56,789.[5] MDN's documentation for Intl.NumberFormat shows the en-IN locale formatting 123456.789 as 1,23,456.789.[6]
A Rs prefix on its own does not prove the amount is Indian, and lakh grouping does not prove the currency either; look for the currency code or the source's country before converting. (Meridian's view)
Formal written publications in English in India tend to use lakh and crore for Indian currency and Western numbering for foreign currencies.[3] The Reserve Bank of India's Weekly Statistical Supplement gives its reserve money table in ₹ crore, with figures such as 5269901 written without grouping separators.[7]
Sources
- [1]Indian numbering system - Wikipediasecondary source
- [2]Crore - Wikipediasecondary source
- [3]Lakh - Wikipediasecondary source
- [4]Indian rupee sign - Wikipediasecondary source
- [5]Unicode Locale Data Markup Language (LDML) Part 3: Numbersstandard
- [6]Intl.NumberFormat - JavaScript | MDNdocumentation
- [7]Weekly Statistical Supplement | Official Website of Reserve Bank of Indiadataset
Detection notes
New in format coverage expansion. Indian numbering (2,2,3 grouping). Key distinguishing signal is irregular comma placement.
Use it
$ finetype infer -i "₹12,34,567.89" --mode column
→ finance.currency.amount_lakh
SELECT ft_infer('₹12,34,567.89');
-- → 'finance.currency.amount_lakh'CAST(REGEXP_REPLACE(REGEXP_REPLACE({col}, '^(₹|Rs\.?)\s*', ''), ',', '', 'g') AS DECIMAL(18,2))Schema
https://meridian.online/schemas/finance.currency.amount_lakh · Frictionless type string
finetype taxonomy finance.currency.amount_lakh -o json-schema