This is an educational explanation of a common Fanuc alarm, not operating instructions for your specific machine. Always follow your machine’s manual and supervisor when clearing an alarm.

Fanuc alarm 007, ILLEGAL USE OF DECIMAL POINT, is the mirror image of a missing decimal point. Here the problem is a decimal that should not be there: it was placed on an address that does not accept one, or a word ended up with two decimal points. The control stops rather than guess.

Why some addresses reject a decimal

Not every address is a measurement. Some are counters or identifiers, and a fractional value makes no sense for them. There is no such thing as program number O1000.5 or sequence number N10.5, so the control rejects the decimal outright. The role of each address word is described in the LinuxCNC reference and the Wikipedia G-code overview.

Which addresses take a decimal

Takes a decimal (measurement)Rejects a decimal (counter / identifier)
X Y Z coordinatesN sequence number
A B C anglesO program number
I J K arc centersG and M code numbers
R radiusT tool number
F feedrateD H offset numbers

The simple rule: if the value is a distance, angle, feed, or time, it can have a decimal. If it is counting or naming something, it cannot.

What triggers alarm 007

Bad blockWhy it alarmsFix
N10.Decimal on a sequence numberN10
T1.Decimal on a tool numberT1
G1.Decimal on a G-code numberG1
H02.Decimal on an offset numberH02
X1.5.Two decimal points in one wordX1.5

The Fanuc alarm code lists place 007 next to its neighbors, and most real cases are one of these: a decimal that slipped onto a counter, or a double decimal from a typo.

How to find and fix it

The alarm names the block, so the fix is quick. Go to that line, find the address carrying the decimal, and decide from the rule above whether that address is allowed one. If it is a counter or code number (N, O, G, M, T, D, H), delete the decimal. If the word has two decimals, remove the extra one. Reading the block correctly is the same skill as reading any CNC program.

Alarm 007 vs alarm 010

These two get mixed up because both are formatting alarms:

AlarmMeaningTypical cause
007Illegal use of decimal pointDecimal on a counter, or two decimals
010Improper G-codeA code that does not exist or is not enabled

The improper-code case has its own walkthrough in Fanuc alarm 010 improper G-code. Telling the two apart quickly is exactly the kind of pattern recognition a practice routine on the G-code practice hub builds.

Bottom line

Fanuc alarm 007 means a decimal point on an address that does not allow one, or two decimals in a word. Distance, angle, feed, and time addresses take decimals; counters and code numbers do not. Go to the flagged block, remove the illegal or extra decimal, and re-run from a safe point.

Sources

Frequently asked questions

What is Fanuc alarm 007?

It is a program alarm meaning ILLEGAL USE OF DECIMAL POINT: a decimal was put on an address that does not accept one, or a word has two decimal points. The control stops at that block so you can correct it.

Which addresses can have a decimal point?

Distance, angle, feed, and time addresses (X, Y, Z, A, B, C, I, J, K, R, F) take a decimal. Counters and identifiers (N, O, G, M, T, D, H) do not.

How do you fix illegal use of decimal point?

Go to the block the alarm names, find the address carrying the decimal, and delete it if that address is a counter or code number. If the word has two decimals, remove the extra one, then re-run from a safe point.

What is the best way to learn correct G-code formatting?

Drill the codes and number formats with active recall. A free app like G-Code Sprint quizzes the everyday addresses and repeats whichever ones you miss.

G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.