Mathematics

Place Value Explained

Why a digit's position decides its value, how to teach it with things you can hold, why zero matters, and how lakhs and crores compare with millions.

Modern Age Coders Team
Modern Age Coders Team September 28, 2026
9 min read
Place value explained: a thousands, hundreds, tens and ones chart showing 4,307

Place value is the idea that a digit's value depends on its position. The 5 in 5,000 and the 5 in 50 are the same symbol but very different amounts. It sounds too simple to need explaining, and that is exactly the problem: because adults use it without thinking, it often gets rushed at school, and children end up doing column addition, subtraction and decimals on top of a foundation that is not quite there.

When teachers try to find out why a child is struggling with maths at 9, 10 or 11, place value is one of the first things they check. This guide explains what place value is, how to teach it with things you can hold, why zero matters so much, how it makes carrying and borrowing make sense, how it extends to decimals, and how the Indian lakh and crore system groups the same digits differently from the international one. The examples were produced by the small Python programs shown alongside them.

What place value is

We write numbers using only ten digits, 0 to 9. To write bigger numbers, we reuse the same digits in different positions, and each position is worth ten times more than the one to its right. That is why our number system is called base ten.

The clearest way to see it is to take one digit and move it:

same_digit.py
# the number 5555: four identical digits in four different places
for i, place in enumerate(["thousands", "hundreds", "tens", "ones"]):
    value = 5 * 10 ** (3 - i)
    print(f"the 5 in the {place:<9} is worth {value:>5,}")
Output
the 5 in the thousands is worth 5,000
the 5 in the hundreds  is worth   500
the 5 in the tens      is worth    50
the 5 in the ones      is worth     5

Four identical 5s, four completely different values. When a child really understands that, they understand place value. The words to use are digit (the symbol), place (its position) and value (what it is worth in that position).

Teach it with things you can hold

The number 243 shown as base-ten blocks: two hundred squares, four ten rods and three single cubes
Ten ones make a ten. Ten tens make a hundred. The blocks make that visible.

Place value is abstract on paper and obvious with objects. Some ways to make it physical:

  • Bundles of ten. Lolly sticks or straws with elastic bands. Count out 43 by making four bundles of ten and three loose sticks. Children physically feel that the 4 in 43 means four tens.
  • Base-ten blocks. Small cubes for ones, rods of ten, flats of a hundred. Schools use them because they show that a rod is exactly ten cubes and a flat is exactly ten rods.
  • Money. Notes and coins in ones, tens and hundreds make the same point with something children care about.
  • Place value charts. Columns labelled thousands, hundreds, tens and ones. Once the objects make sense, digits go in the columns.
๐Ÿ’ก

A two-minute check

Ask your child: "In 352, what is the 5 worth?" If they say 5, they know the digit but not its value. If they say 50, or "five tens", place value is secure. It is a better test than any worksheet.

Zero, the placeholder

Comparing 37 and 307 on a place value chart to show zero holding the empty tens place
The zero keeps every other digit in the right column.

Zero is the hardest digit to understand, because it seems to mean nothing. In 307, it does something essential: it shows that there are no tens, and keeps the 3 in the hundreds column. Without it the number collapses to 37. Children who write "three hundred and seven" as 37 or 3007 are not being careless. They have not yet seen what the zero is for.

Expanded form makes the job of each digit, including the zeros, explicit:

expanded_form.py
def expanded_form(n):
    digits = str(n)
    parts = []
    for i, d in enumerate(digits):
        place = 10 ** (len(digits) - i - 1)
        if d != "0":
            parts.append(f"{d} x {place:,}")
    return " + ".join(parts)

for n in (4307, 25016, 900050):
    print(f"{n:>7,} = {expanded_form(n)}")
Output
  4,307 = 4 x 1,000 + 3 x 100 + 7 x 1
 25,016 = 2 x 10,000 + 5 x 1,000 + 1 x 10 + 6 x 1
900,050 = 9 x 100,000 + 5 x 10

Notice that the zeros disappear from the expanded form. They contribute nothing to the total, but they are what put every other digit in the right place.

How place value makes carrying and borrowing make sense

Column addition and subtraction are place value in action. "Carrying" in addition is really exchanging ten ones for one ten, or ten tens for one hundred. "Borrowing" in subtraction is the reverse: breaking a ten into ten ones. Many schools now call both regrouping or exchanging, because those words describe what is actually happening.

Take 42 − 17. You cannot take 7 ones from 2 ones, so you exchange one of the 4 tens for ten ones. Now you have 3 tens and 12 ones. 12 − 7 = 5 ones, and 3 − 1 = 2 tens, giving 25. Children who learn borrowing as a rule ("cross out, put a 1 next to it") often get lost with zeros, as in 402 − 157. Children who understand exchanging with bundles of ten can work it out, because they know what they are doing and why.

Place value in decimals

The same pattern continues to the right of the decimal point, dividing by ten each time: tenths, hundredths, thousandths. This is where a very common misconception appears: that a decimal with more digits is bigger.

Comparing 0.3 and 0.25 using tenths and hundredths, showing that 0.3 is bigger
More digits after the point does not mean a bigger number.
compare_decimals.py
pairs = [(0.3, 0.25), (0.5, 0.125), (0.7, 0.69), (2.05, 2.5)]
for a, b in pairs:
    bigger = a if a > b else b
    print(f"{a} vs {b}: bigger is {bigger}    as hundredths/thousandths: {a:.3f} vs {b:.3f}")
Output
0.3 vs 0.25: bigger is 0.3    as hundredths/thousandths: 0.300 vs 0.250
0.5 vs 0.125: bigger is 0.5    as hundredths/thousandths: 0.500 vs 0.125
0.7 vs 0.69: bigger is 0.7    as hundredths/thousandths: 0.700 vs 0.690
2.05 vs 2.5: bigger is 2.5    as hundredths/thousandths: 2.050 vs 2.500

A child who thinks 0.25 is bigger than 0.3 is treating the digits after the point as a whole number. Writing both to the same number of places, 0.30 and 0.25, and comparing column by column from the left, fixes it. So does money: 30 cents or paise is more than 25. This is closely linked to fractions, and our guide to helping a child understand fractions uses the number line for exactly this reason.

Indian and international number systems

Place value is the same everywhere, but the way large numbers are grouped and named is not. The international system puts a comma every three digits and uses thousand, million and billion. The Indian system groups the first three digits, then every two, and uses thousand, lakh and crore. Children in India learn both, and it is a frequent source of confusion in exams.

indian_format.py
def indian_format(n):
    s = str(n)
    last3, rest = s[-3:], s[:-3]
    groups = []
    while len(rest) > 2:
        groups.insert(0, rest[-2:])
        rest = rest[:-2]
    if rest:
        groups.insert(0, rest)
    return ",".join(groups + [last3]) if groups else last3

for n in (100000, 2500000, 10000000, 123456789):
    print(f"international {n:>13,}    Indian {indian_format(n):>14}")
Output
international       100,000    Indian       1,00,000
international     2,500,000    Indian      25,00,000
international    10,000,000    Indian    1,00,00,000
international   123,456,789    Indian   12,34,56,789
The same numbers written in the international system with commas every three digits and in the Indian system with lakhs and crores
Same digits, same values. Only the commas and the names change.
Indian name Indian format International format International name
One lakh 1,00,000 100,000 One hundred thousand
Ten lakh 10,00,000 1,000,000 One million
One crore 1,00,00,000 10,000,000 Ten million
Hundred crore 1,00,00,00,000 1,000,000,000 One billion

The digits and their values never change. Only the grouping and the names do. A useful way to convert: one lakh is one hundred thousand, one crore is ten million, and ten lakh is one million.

How to tell if place value is the problem

  • Writing numbers read aloud incorrectly, such as "four thousand and six" as 46 or 40006.
  • Column addition and subtraction answers that are wildly off, especially with zeros.
  • Not being able to say what a digit is worth in a number.
  • Thinking 0.25 is bigger than 0.3, or 3.14 is bigger than 3.2.
  • Multiplying by 10 by "adding a zero" and then doing it to decimals (2.5 x 10 = 2.50).

If you recognise several of these, place value is worth rebuilding with objects before moving on, however old the child is. It is usually a quick fix and it makes almost every other topic easier. Our article on why children struggle with maths explains how to find this kind of gap.

When a child is stuck at 10, the gap is often at 7. Place value is the usual suspect.

How we teach it

Place value is exactly the kind of idea our how we teach page is talking about when it says we would rather go deep on one idea than skim five. It is taught in our live online maths classes, and for older students with gaps, the maths catch-up programme rebuilds foundations in order. Classes are one to one or in small groups of 5 to 10.

Frequently asked questions

Place value means that a digit's value depends on its position in a number. In 352, the 3 is worth 300, the 5 is worth 50 and the 2 is worth 2. Each place is worth ten times the place to its right.

Start with objects: bundles of ten sticks, base-ten blocks or coins. Count out numbers in tens and ones, then move to a place value chart, then to expanded form such as 352 = 300 + 50 + 2. Ask what each digit is worth, not just what it is.

Zero holds an empty place so that the other digits stay in the correct columns. In 307, the 0 shows there are no tens and keeps the 3 in the hundreds place. Without it the number would be 37.

Face value is the digit itself. Place value is what the digit is worth in its position. In 352, the face value of 5 is 5, but its place value is 50.

The values are the same, but the grouping differs. The international system puts commas every three digits and uses thousand, million and billion. The Indian system groups the first three digits and then every two, using thousand, lakh and crore. One lakh is 100,000 and one crore is 10,000,000.

Because they are reading the digits after the decimal point as whole numbers, so 25 looks bigger than 3. Writing both to the same number of places, 0.30 and 0.25, and comparing tenths first, usually fixes it.

Children start with tens and ones at around 5 to 6, hundreds at around 7, thousands at around 8, and decimal place value at around 9 to 11. Understanding usually needs revisiting at each step, especially when zeros appear.

Modern Age Coders Team

About Modern Age Coders Team

Expert educators making coding and maths clear for ages 6 to 67.

Keep exploring Modern Age Coders

More from the blog

Free resources

From the blog

Start here

Ask Misti AI
Chat with us
Enroll Watch Class Priority Demo Enrol Book a Demo Watch Class WhatsApp Book demo today