Bruce Momjian <bruce@momjian.us> writes:
> OK, here is a much nicer patch. The fix is to do no rounding, but to
> find the number of days before applying the factor adjustment.
You have forgotten the problem of the factor not being exactly
representable (eg, things like '10 days' * 0.1 not giving the expected
result). Also, as coded this is subject to integer-overflow risks
that weren't there before. That could be fixed, but it's still only
addressing a subset of the problems. I don't think you can fix them
all without rounding somewhere.
regards, tom lane