Show more decimal places on an HMI numeric display

6 min read · Published November 7, 2026

The fractional setting is capped by the total digit count. Count the sign, the integer digits and the fractional digits the largest value needs, raise the total count to that, then set the fractional count to three. A 12.345 in position needs 5 digits, 6 with a minus sign.

The fractional digit field stops low because the total digit count leaves it nothing to spend. A numeric display object shows a fixed number of digit positions, and the fractional setting can only use what is left after the integer digits and the sign. Raise the total count first, then set the fractional count to three, and a position of 12.345 in comes through in full. The digit arithmetic takes a minute and ends the guessing.

Why the fractional field stops at one digit

The total digit count is the capacity of the field. Every numeral on screen at the largest value takes one position, and a minus sign takes one more on an axis that reads below zero. The decimal point takes none. The fractional setting draws from what remains, and an editor refuses a fractional count the total count cannot hold. With 4 total digits set, the editor capped the fractional field at 1; the position wanted three places.

Spare total digits cost field width and nothing else, so size the field from the top of travel, with one digit to spare. When the reading backs a dimension on a decimal-inch drawing, carry the same place count the drawing carries; how place counts pair with drawing tolerances covers that pairing.

What the screen shows and what it points to

What you see What it points to What to do
The fractional field stops at 1 place as you raise it The total digit count leaves no room for more places Raise the total count, then set 3 fractional digits
The editor accepts 3 places and the panel still shows 1 The panel runs the previous project, or the object you edited sits on another screen Confirm the object on the active screen, save, download, read again
Three places appear and the number is wrong or jumps The two words of the float are read as separate integers or in the wrong order Set the object to 32-bit floating point and check the word order
Three places appear and the last two always read zero The source is an integer count; the added places have nothing to show Scale the count so it carries the places, or hold the places at what the scaling supports
Small values read fine and the top of travel loses its leading digit The total count is short for the largest value plus the sign Add total digits until the top of travel fits

Check the value before the digit fields

Two checks first, so the digit change lands on sound plumbing.

Confirm the object is a numeric display, the read-only kind. Entry objects and message objects carry different settings and different limits.

Confirm the type match. The register holds one real number in the PLC, and the object must read it as one 32-bit floating point value. A float travels in two word registers, and the object has to treat the pair as a single number; displaying a PLC float stored in two word registers covers the word-order fault behind a scrambled reading. Keep the PLC and HMI definitions matched while you work: a display format change repairs nothing on the value side.

Then jog the axis to a known position and read the screen at one place. Where the axis sits at 12.3 in and the screen says 12.3, the chain from register to screen is sound, and only the digit fields need work.

Set the digit fields

  1. Open the numeric display object in the panel editor.
  2. Find the two digit fields. In the panel editor described here they sit in the lower right corner of the object dialog under "# digits"; other editors put total digits and decimal places on a format tab of the same dialog.
  3. Raise the total digit count until it covers the minus sign, the integer digits and the fractional digits at the top of travel, plus one spare.
  4. Set the fractional digit count to 3.
  5. Save the project and download it to the panel.
  6. Read a known position on the running screen.

Example: sizing the digit fields for a 12.345 in position

Inputs, each with its source:

  • Resolution wanted: 0.001 in, which is 3 fractional digits (the job spec for the axis).
  • Register content: one real number in the PLC, read as 32-bit floating point by the object (the object's type setting).
  • Travel: under 100 in, so the integer part tops out at 2 digits (the machine's axis limit).
  • The axis reads below zero, so the field carries a sign.
  • Object as found: 4 total digits, fractional field capped at 1.

Rule in words: the total digit count must cover every numeral on screen at the largest reading, plus the minus sign where the axis reads below zero. The decimal point takes no position.

Arithmetic:

  • Integer digits: 2, the "12" in 12.345.
  • Fractional digits: 3, the "345".
  • Unsigned need: 2 + 3 = 5 digits.
  • Signed need: 5 + 1 = 6 digits.
  • Set today: 4. The field is short, and the editor capped the fractional count at 1.

Result: 6 total digits, 3 fractional digits.

Decision: at 6 total digits, every signed position on this axis fits, because the worst case 99.999 in needs the same 2 integer digits, 3 places and 1 sign. Above 100 in of travel, add one total digit per decade.

Confirm the running panel

Read the running screen with values the machine can produce.

Jog to a known position of 12.345 in. Three digits follow the point. A stop at 12.300 in reads 12.300 with both trailing zeros, because the fractional count fixes the width.

Drive to the top of travel, 99.999 in on this axis. The leading digit survives; a value that outgrows the field means the total count is still short.

Drive to the negative end if the axis travels there. The sign shows beside the digits without pushing a numeral out.

When the source carries no decimals

The digit fields display what the register carries, no more. A float scaled to 0.001 in carries thousandths, and three places read true. An integer count steps in whole numbers, so places added in the display read zero every scan, because nothing measured hundredths into the count.

The cure is scaling, in the analog channel or in the PLC. Spread the span so each count is a slice of the unit: 10 V over 0 to 100 counts resolves 0.1 V per count and supports one place; 0 to 1000 counts resolves 0.01 V and supports two; 0 to 10000 counts resolves 0.001 V and supports three. Then the display places the point, the method shown for showing decimal flow values on an HMI numeric display. When the scaled reading then disagrees with the raw channel, why the scale value differs from the PLC analog input walks through the offsets that usually explain it.

Places that change at runtime

Some editors tie the decimal-place count to a tag, so logic can move the shown places while the stored value stands still: a level reading shows whole liters near 9000 L and two places near 12.50 L. The stored number stays put; only its format moves. The entry-object side of that trick is covered in moving a decimal point from a PLC tag.

What to set

Recommendation: Set 6 total digits and 3 fractional digits on a position object whose axis travels under 100 in and can read below zero. Drop to 5 total digits when the axis never leaves positive territory. Add one total digit per decade of travel above 100 in, and hold the fractional count at 3 for as long as the scaling carries 0.001 in.

Questions

Does a 32-bit float really carry three decimal places?

Yes, at this size. An IEEE 754 single-precision value holds about 7 significant decimal digits. A reading of 12.345 in uses 5 of them and 99.999 in uses 6, so both sit inside the format. Push the places past what the scaling carries and the last digits begin to wander with the float's binary rounding, drifting on a value that should read flat.

Should I change the PLC value to get more places?

Only when the source is an integer count. Then scale the count so it carries the places you want: 10 V spread over 0 to 10000 counts resolves 0.001 V per count, and the display places the point. When the register already holds a real number scaled to 0.001 in, the PLC side is finished; the digit fields in the object are the fix.

Why does the panel still show one place after the editor accepts three?

The running panel still holds the previous project. Confirm the object you edited is the one on the active screen, save, download the project to the panel, and read the screen again. The editor view and the panel runtime are separate: a setting saved in the editor reaches the operators only after the download.

How many total digits does a 999.999 in axis need?

Seven unsigned, eight with a sign. Three integer digits plus three fractional digits is six, the hundreds digit makes seven, and a minus sign makes eight. Count one total digit per decade of travel, added on top of the six.

Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.

Keep reading

Build your signAsk for a quote