Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • All simple fractions exactly.
  • All decimals precisely, even when the decimals can be represented in a small number of digits.
  • All digits of large values, meaning that incrementing a large floating-point value might not change that value within the available precision.

For the purpose of this rule, a loop counter is an induction variable that is used as an operand of a comparison expression that is used as the controlling expression of a do, while or for loop. An induction variable is a variable that gets increased or decreased by a fixed amount on every iteration of a loop [Aho 1986]. Furthermore, the change to the variable must occur directly in the loop body (rather than inside a function executed within the loop.)

This rule is a subset of NUM04-J. Do not use floating-point numbers if precise computation is required.

Noncompliant Code Example

...

Using floating-point loop counters can lead to unexpected behavior.

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

NUM09-J

Low

Probable

Low

P6

L2

Automated Detection

Automated detection of floating-point loop counters is straightforward.

ToolVersionCheckerDescription
Parasoft Jtest
Include Page
Parasoft_V
Parasoft_V
CERT.NUM09.FPLIDo not use floating point variables as loop indices
PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V6108

Related Guidelines

Bibliography

...


...