Nov. 1, 2016
2:12 a.m.
On 10/31/2016 05:07 PM, Ben Coman wrote:
So then why don't we *really* help the naive programmer make "x roundTo: 0.1" an error? Conceptually...
Number>>roundTo: quantum quantum < 1 ifTrue: [ quantum isFraction ifFalse: [ SubtleArithmeticError signal ]. ^(self / quantum) rounded * quantum
SubtleArithmeticError >> defaultAction self inform: 'Decimals have an inexact Float representation, so rounding may not give you what you expect. Us Fractions instead.'.
cheers -ben
While this is tempting, this philosophy would, I'm afraid, lead to signaling this error on *all* uses of Floats, because Floats are *full* of this kind of behavior that is surprising to the uninitiated. Regards, -Martin