It turns out that -0.15::tax_rate means -(0.15::tax_rate), but i want (-0.15)::tax_rate, because otherwise i only check the domain [0, 1).