class A { void myMethod() { float a = 16777216.0f; float b = 1.0f; float c = a + b; // Noncompliant {{Use a "double" or "BigDecimal" instead.}} yields 1.6777216E7 not 1.6777217E7 [[sc=15;ec=20]] double d1 = a + b; // Noncompliant ; addition is still between 2 floats double d2 = a - b; // Noncompliant double d3 = a * b; // Noncompliant double d4 = a / b; // Noncompliant double d5 = a / b + b; // Noncompliant, only one issue should be reported [[sc=17;ec=26]] double d6 = a + d1; int i = 16777216; int j = 1; int k = i + j; } }