Why is this an issue?
The use of punctuation characters to separate subgroups in a number can make the number more readable. For instance consider 1,000,000,000 versus
1000000000. But when the grouping is irregular, such as 1,000,00,000; it indicates an error.
This rule raises an issue when underscores (
_) are used to break a number into irregular subgroups.
Noncompliant code example
int thousand = 100_0;
int tenThousand = 100_00;
int million = 1_000_00_000;
int thousand = 1000;
int tenThousand = 10_000;
int tenThousandWithout = 10000;
int duos = 1_00_00;
int million = 100_000_000;
No issue will be raised on binary numbers (starting with
0B). Binary number bits are often grouped corresponding to
certain meanings, resulting in irregular bit group sizes.
int configValue1 = 0b00_000_10_1; // Compliant
int configValue2 = 0B00_000_10_1; // Compliant