|
Boost : |
From: John Max Skaller (skaller_at_[hidden])
Date: 2001-05-10 20:52:25
Rainer Deyke wrote:
> From: "John Max Skaller" <skaller_at_[hidden]>
> > 4. Quotient. The argument have the same scale,
> > the result has scale 0
>
> More general: scale N / scale M = scale N - M.
>
> > 5. operator/= is undefined
>
> Except by an integer (i.e. scale 0).
I originally believed this was correct,
and it is symmetrical with multiplication. But now
I am not sure. Consider
3.3 / .02
That is like:
330 / 2 = 165
By your formula, then, the quotient would be
160
since the number of places is 1 - 2 = -1.
The remainder is then
3.3 - (160 * .02) = .1
This seems strange, since the remainder is now
bigger than the divisor. I suspect that this
might be confusing. I'm confused!
If your formula is NOT accepted, on the other hand,
there's no way to 'undo' a multiplication.
for example,
.1 * .1 = .01
Since I insisted the quotient is always an integer,
the result of any division of .01 by .10 would have
to be 0 with remainder .01.
So my rules are inconsistent. :-(
I think your rule MUST be accepted.
-- John (Max) Skaller, mailto:skaller_at_[hidden] 10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850 checkout Vyper http://Vyper.sourceforge.net download Interscript http://Interscript.sourceforge.net
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk