added: #rounded:
authorClaus Gittinger <cg@exept.de>
Mon, 05 Nov 2012 17:48:19 +0100
changeset 14495 d5afe5bc91f7
parent 14494 c7342a32f432
child 14496 86af3ba4d272
added: #rounded: comment/format in: #closeTo:withEpsilon:
Number.st
--- 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 $'
 ! !