---
title: "Fanuc Illegal Use of Decimal Point Alarm (007)"
description: "Fanuc alarm 007 means a decimal point on an address that does not allow one, or two decimals in a word. Here is which addresses take a decimal and which do not."
url: https://gcodepractice.com/journal/fanuc-illegal-use-of-decimal-point-alarm/
canonical: https://gcodepractice.com/journal/fanuc-illegal-use-of-decimal-point-alarm/
author: "Lawrence Arya"
authorUrl: https://www.linkedin.com/in/vibecoding/
published: 2026-06-04
updated: 2026-06-04
category: "Guides"
tags: ["fanuc", "alarm", "decimal-point", "troubleshooting"]
lang: en
---

# Fanuc Illegal Use of Decimal Point Alarm (007)

> **TL;DR** Fanuc alarm 007, ILLEGAL USE OF DECIMAL POINT, fires when a decimal point is put on an address that does not allow one (like N, O, G, M, T, or an offset number) or when a word has two decimal points. Coordinates and feed-type addresses take decimals; counters, code numbers, and register numbers do not. Remove the decimal from the flagged address.

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](/journal/missing-decimal-point-in-g-code-crash/). 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](https://linuxcnc.org/docs/html/gcode/g-code.html) and the [Wikipedia G-code overview](https://en.wikipedia.org/wiki/G-code).

## Which addresses take a decimal

| Takes a decimal (measurement) | Rejects a decimal (counter / identifier) |
| --- | --- |
| `X` `Y` `Z` coordinates | `N` sequence number |
| `A` `B` `C` angles | `O` program number |
| `I` `J` `K` arc centers | `G` and `M` code numbers |
| `R` radius | `T` tool number |
| `F` feedrate | `D` `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 block | Why it alarms | Fix |
| --- | --- | --- |
| `N10.` | Decimal on a sequence number | `N10` |
| `T1.` | Decimal on a tool number | `T1` |
| `G1.` | Decimal on a G-code number | `G1` |
| `H02.` | Decimal on an offset number | `H02` |
| `X1.5.` | Two decimal points in one word | `X1.5` |

The [Fanuc alarm code lists](https://www.helmancnc.com/fanuc-alarm-code-list/) 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](/journal/how-to-read-a-cnc-program-for-beginners/).

## Alarm 007 vs alarm 010

These two get mixed up because both are formatting alarms:

| Alarm | Meaning | Typical cause |
| --- | --- | --- |
| 007 | Illegal use of decimal point | Decimal on a counter, or two decimals |
| 010 | Improper G-code | A code that does not exist or is not enabled |

The improper-code case has its own walkthrough in [Fanuc alarm 010 improper G-code](/journal/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](/g-code-practice/) 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

- [HelmanCNC: Fanuc alarm code list](https://www.helmancnc.com/fanuc-alarm-code-list/)
- [LinuxCNC G-code reference (address words)](https://linuxcnc.org/docs/html/gcode/g-code.html)
- [Wikipedia: G-code](https://en.wikipedia.org/wiki/G-code)

## 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.*

---

Source: https://gcodepractice.com/journal/fanuc-illegal-use-of-decimal-point-alarm/
Author: Lawrence Arya — https://www.linkedin.com/in/vibecoding/
