Why is sage behaving weird when rounding rational numbers?
I might be doing something stupid, but Sage's
round() functions seem to be buggy to me.
I'm trying to use these with rational numbers to round towards zero. I'd expect
-7/4 to round to
+7/4 to round to
1. Instead I get different behavior for rationals and their decimal representation:
┌────────────────────────────────────────────────────────────────────┐ │ SageMath Version 7.1, Release Date: 2016-03-20 │ │ Type "notebook()" for the browser-based notebook interface. │ │ Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: int(-1.75) # Correctly rounds towards zero -1 sage: int(-7/4) # Does not round towards zero -2 sage: (-7/4).round("toward") # Does not round towards zero (despite what the documentation claims!) -2 sage: -7/4 + 0.0 # The numbers are in fact the same! -1.75
How do I round rational numbers towards zero in Sage?