Certain math operations are just silly and should not be performed because their results are predictable.
In particular, anyValue % 1
is silly because it will always return 0.
Casting a non-floating-point value to floating-point and then passing it to Math.round
, Math.ceil
, or
Math.floor
is silly because the result will always be the original value.
These operations are silly with any constant value: Math.abs
, Math.ceil
, Math.floor
, Math.rint
,
Math.round
.
And these oprations are silly with certain constant values:
Operation | Value |
---|---|
acos | 0.0 or 1.0 |
asin | 0.0 or 1.0 |
atan | 0.0 or 1.0 |
atan2 | 0.0 |
cbrt | 0.0 or 1.0 |
cos | 0.0 |
cosh | 0.0 |
exp | 0.0 or 1.0 |
expm1 | 0.0 |
log | 0.0 or 1.0 |
log10 | 0.0 or 1.0 |
sin | 0.0 |
sinh | 0.0 |
sqrt | 0.0 or 1.0 |
tan | 0.0 |
tanh | 0.0 |
toDegrees | 0.0 or 1.0 |
toRadians | 0.0 |
public void doMath(int a) { double floor = Math.floor((double)a); // Noncompliant double ceiling = Math.ceil(4.2); // Noncompliant double arcTan = Math.atan(0.0); // Noncompliant }