Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
BigInteger(7) / BigInteger(2) == 3
whereas
BigDecimal(7) / BigDecimal(2) == 4, because the result is rounded up.
I would expect the results to be the same.
Rather worse is:
BigDecimal(7) % BigDecimal(2) == -1
which makes no sense at all.
Seems to me that the arithmetic "rules" need revisiting and rationalising - for example why should Integer be treated as double?
At present literal numbers are treated as Integer or Float; there's no option to generate Long or Double literals.