--- a/Number.st Mon Nov 05 13:59:57 2012 +0100
+++ b/Number.st Mon Nov 05 17:48:19 2012 +0100
@@ -631,6 +631,7 @@
"Modified: / 16.11.2001 / 14:13:16 / cg"
! !
+
!Number class methodsFor:'private'!
readMantissaAndScaleFrom:aStream radix:radix
@@ -705,6 +706,13 @@
^ self == Number
! !
+
+!Number methodsFor:'*StateSpecs-Specs'!
+
+isEqual: aNumber within: accuracy
+ ^(self - aNumber) abs < accuracy
+! !
+
!Number methodsFor:'*grease-core'!
greaseInteger
@@ -712,6 +720,7 @@
^ self truncated
! !
+
!Number methodsFor:'Compatibility-Squeak'!
asSmallAngleDegrees
@@ -802,8 +811,11 @@
^ num closeFrom:self withEpsilon:eps
"
- 1 closeTo:1.0000000001
- 1 closeTo:1.001
+ 1 closeTo:1.0000000001
+ 1 closeTo:1.001
+
+ 1 closeTo:1.001 withEpsilon:0.1
+ 1 closeTo:1.201 withEpsilon:0.1
3.14 closeTo:(3.14 asFixedPoint:2)
(3.14 asFixedPoint:2) closeTo:3.14
@@ -835,6 +847,25 @@
^ TileMorph new addArrows; setLiteral: self; addSuffixIfCan
!
+rounded:n
+ "Answer the float rounded with n digits of precision"
+
+ | mult |
+
+ mult := 10 raisedTo: n.
+ ^ (((self * mult) rounded) asFloat / mult).
+
+ "
+ 7 rounded:2
+ 7.1 rounded:2
+ 7.2345 rounded:2
+ 7.2385 rounded:2
+ 7.2341 rounded:3
+ 7.2345 rounded:3
+ 7.2348 rounded:3
+ "
+!
+
stringForReadout
^ self rounded printString
! !
@@ -2290,12 +2321,13 @@
"Modified: / 5.11.2001 / 17:54:22 / cg"
! !
+
!Number class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.136 2012-02-14 13:22:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.137 2012-11-05 16:48:19 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.136 2012-02-14 13:22:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.137 2012-11-05 16:48:19 cg Exp $'
! !