equal
deleted
inserted
replaced
325 ^ pos |
325 ^ pos |
326 |
326 |
327 "#(-500 -300 -150 -5 0 5 150 300 500 1200) collect: [:n | n asSmallAngleDegrees]" |
327 "#(-500 -300 -150 -5 0 5 150 300 500 1200) collect: [:n | n asSmallAngleDegrees]" |
328 ! |
328 ! |
329 |
329 |
|
330 closeFrom:aNumber |
|
331 "are these two numbers close?" |
|
332 |
|
333 | fuzz | |
|
334 |
|
335 self isNaN == aNumber isNaN ifFalse: [^ false]. |
|
336 self isInfinite == aNumber isInfinite ifFalse: [^ false]. |
|
337 |
|
338 fuzz := (self abs max:aNumber abs) * 0.0001. |
|
339 ^ (self - aNumber) abs <= fuzz |
|
340 |
|
341 " |
|
342 9.0 closeTo: 8.9999 |
|
343 9.9 closeTo: 9 |
|
344 (9/3) closeTo: 2.9999 |
|
345 1 closeTo: 0.9999 |
|
346 1 closeTo: 1.0001 |
|
347 1 closeTo: 1.001 |
|
348 1 closeTo: 0.999 |
|
349 |
|
350 0.9999 closeTo: 1 |
|
351 1.0001 closeTo: 1 |
|
352 1.001 closeTo: 1 |
|
353 0.999 closeTo: 1 |
|
354 " |
|
355 ! |
|
356 |
330 closeTo:num |
357 closeTo:num |
331 "are these two numbers close?" |
358 "are these two numbers close?" |
332 |
359 |
333 | ans | |
360 ^ num closeFrom:self |
334 |
|
335 self = num ifTrue:[^ true]. |
|
336 |
|
337 num isLimitedPrecisionReal "isReal" ifTrue: [^ num closeTo: self asFloat]. |
|
338 [ans := (self = num)] ifError: [:aString :aReceiver | ^ false]. |
|
339 ^ ans |
|
340 |
361 |
341 " |
362 " |
342 1 closeTo:1.0000000001 |
363 1 closeTo:1.0000000001 |
343 1 closeTo:1.001 |
364 1 closeTo:1.001 |
344 " |
365 " |
720 ! ! |
741 ! ! |
721 |
742 |
722 !Number class methodsFor:'documentation'! |
743 !Number class methodsFor:'documentation'! |
723 |
744 |
724 version |
745 version |
725 ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.70 2001-12-05 09:23:46 cg Exp $' |
746 ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.71 2001-12-18 13:46:21 cg Exp $' |
726 ! ! |
747 ! ! |