...
The minimum and maximum float
values are converted to minimum 0 and maximum int
values (0x80000000
and 0x7fffffff
respectively). The resulting short
values are 0 and the lower 16 bits of these values this value (0x0000
and 0xffff
). The resulting final values (0 and −1) might be unexpected.
...
This compliant solution range-checks both the i
and j
variables before converting to the resulting integer type. Because both values are the maximum value is out of the valid range for a short
, this code will always throw an ArithmeticException
.
...
Tool | Version | Checker | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
CodeSonar |
| JAVA.MATH.APPROX.E | Approximate e Constant (Java) | ||||||
Parasoft Jtest |
| CERT.NUM12.CLP | Do not cast primitive data types to lower precision |
...