== Why is this an issue? Some mathematical operations are unnecessary and should not be performed because their results are predictable. For instance, `anyValue % 1` will always return 0, as any integer value can be divided by 1 without remainder. Similarly, casting a non-floating-point to a floating-point value and then passing it to `Math.round`, `Math.ceil`, or `Math.floor` is also unnecessary, as the result will always be the original value. The following operations are unnecessary when given any constant value: `Math.abs`, `Math.ceil`, `Math.floor`, `Math.rint`, `Math.round`. Instead, use the result of the operation directly. The following operations are unnecessary with certain constants and can be replaced by the result of the operation directly: [frame=all] [cols="^1,^1"] |=== |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 |=== == How to fix it Ask yourself if the questionable operation represents the desired calculation or if a value used is erroneous. If the calculation is correct, replace it with the result to avoid having to perform the unnecessary operation at runtime. === Code examples ==== Noncompliant code example [source,java,diff-id=1,diff-type=noncompliant] ---- public void doMath(int a) { double res1 = Math.floor((double)a); // Noncompliant, the result will always be equal to '(double) a' double res2 = Math.ceil(4.2); // Noncompliant, the result will always be 5.0 double res3 = Math.atan(0.0); // Noncompliant, the result will always be 0.0 } ---- ==== Compliant solution [source,java,diff-id=1,diff-type=compliant] ---- public void doMath(int a) { double res1 = a; // Compliant double res2 = 5.0; // Compliant double res3 = 0.0; // Compliant } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Remove this unnecessary call to "Math.xxx". endif::env-github,rspecator-view[]