Million to lakh converter
Restate a figure quoted in millions as lakhs: 1 million is 10 lakhs, 2.5 million is 25 lakhs, and a negative change keeps its sign. Useful when a newsroom, an accounts team or a classroom needs the lakh figure. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Millions
- 1
- Lakhs
- 10 lakh
- From unit
- million
- To unit
- lakh
- Factor
- 10
When a figure is already written in millions — a Western term sheet, a US-dollar market cap, an IMF table — the next question for anyone working in India, Bangladesh, Nepal, Pakistan, or Sri Lanka is often how many lakhs that same quantity is. A million-to-lakh converter answers that scale change with one exact identity from the Indian numbering system: one million equals ten lakhs, because one lakh is one hundred thousand and one million is one million. This tool accepts a finite number of millions, multiplies by ten, and returns the equivalent in lakhs together with the conversion factor and the formula. It rejects anything that is not a finite number instead of inventing a result.
How millions become lakhs in the Indian numbering system
Under the Indian numbering system used in India, Bangladesh, Nepal, Pakistan, and Sri Lanka, large numbers are grouped after the thousands place in lakhs and then in crores, rather than in the Western million-billion-trillion ladder. One thousand is still one thousand. One lakh is one hundred thousand, commonly written 1,00,000 with the Indian comma style that groups two digits after the first three.
One crore is one hundred lakhs, which is also ten million. Therefore a quantity already expressed in millions becomes the same quantity expressed in lakhs when you multiply by exactly ten: one million is ten lakhs; two million is twenty lakhs; one point five million is fifteen lakhs; zero point one million is one lakh; and a signed change of negative three million is negative thirty lakhs.
Ten million is one crore and also one hundred lakhs, so the identity still holds if you only need the lakh column for a headline that already quotes millions. This capability implements that identity and nothing else. If you need rupees, dollars, or a crore companion column, pair the numeric result with your own unit label.
Zero is a valid idle or baseline reading.
Where a million-to-lakh converter earns its keep
Newsrooms and investor-relations desks restating a Western valuation, a market cap, or a fundraising round quoted in millions of dollars often need a companion figure in lakhs for an Indian audience that reads headlines in that unit. Accounting teams mapping a US-style trial balance or a multinational ERP extract into an Indian statutory workbook do the same when a source column is labelled millions and the local report must show lakhs.
Classroom worksheets on place value use the identity to show that moving from 10^6 to 10^5 is one order of magnitude the other way, which is exactly a multiply-by-ten step from millions into lakhs. Data-cleaning scripts that import mixed regional spreadsheets need a deterministic oracle that will not silently round 0.99 million up to ten lakhs, and that will reject a blank or non-numeric cell instead of printing a plausible-looking zero. Failed validation does not consume balance.
Keep the unit meaning explicit in your own docs: millions in, lakhs out, Indian numbering only. Prefer this dedicated landing when searchers type million to lakh rather than opening a multi-unit Swiss-army tool: the form, title, and examples stay focused on the conversion people actually type into the address bar.
What you can do with it
Newsrooms and investor relations
Restate a Western valuation, market cap, or fundraising round quoted in millions as a lakh figure for an Indian-language headline or press note.
Accounting and statutory workbooks
Map a source column labelled in millions into a lakh column for Indian statutory reports, bank forms, and ERP extracts.
Classrooms and spreadsheet cleaning
Check place-value homework and reject blank or non-numeric million cells instead of inventing a lakh total during data import.
FAQ
How do I convert millions to lakhs?
Send a finite number in the field millions.
Why is one million equal to ten lakhs?
One lakh is 100,000 and one million is 1,000,000, so 1,000,000 ÷ 100,000 = 10. The factor is exact by definition, not an approximation.
What happens if the input is not a finite number?
Missing millions, empty strings, NaN, and Infinity are rejected and are not billed.
Can I convert a negative millions figure, such as a signed change?
Yes. Any finite number is accepted, including zero and negatives. A change of −3 million returns −30 lakhs.
How many lakhs are in one crore?
One crore is one hundred lakhs, which is also ten million. This converter always answers in lakhs and never switches to crores, so 10 million comes out as 100 lakhs rather than as 1 crore.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/conv/million-to-lakh \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"millions":1}'const res = await fetch("https://api.kit.forhosting.com/conv/million-to-lakh", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"millions": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/million-to-lakh",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"millions": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/million-to-lakh", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"millions":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"millions":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/million-to-lakh", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"millions": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.million_to_lakh",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Hosted calls are billed at $0.002 per successful conversion; invalid input is not charged.
How millions become lakhs in the Indian numbering system
It does not guess a currency, apply inflation, convert between calendar years, switch to crores, or emit Indian comma grouping in the JSON.
Input contract, response shape, and non-finite errors
Negative values are allowed: a year-over-year change, a signed accounting line, or a deficit restated from millions still has a well-defined lakh equivalent after multiplication by ten. Example: one million converts to ten lakhs; two point five millions converts to twenty-five lakhs; zero point two five millions converts to two point five lakhs. POST a JSON body with the required field millions, a finite number that already uses million as the unit. Aliases amount, value, million, and n are accepted so older forms and spreadsheet columns map without renaming. Each field may arrive as a JSON number or as a numeric string; empty strings, missing fields, NaN, and plus or minus Infinity fail with invalid_input naming millions, and those failures are not billed because the fault is in the client payload. On success the body echoes millions, returns lakhs as the converted quantity, sets unit and to_unit to lakh and from_unit to million, includes factor ten, and restates the identity in formula as lakhs equals millions multiplied by ten. There is no network call, no language model, no clock, and no random seed: the same millions figure always yields the same JSON. Pair the response with your own currency label if you need rupees or dollars on the display; this endpoint converts the scale of the number only and does not emit money formatting or locale grouping.
Technical questions
What does the million to lakh converter cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.