FixedPoint.st
changeset 6625 b68451aa35ab
parent 6573 4ea758ea3d4b
child 6636 dedc341eb3ab
--- a/FixedPoint.st	Mon Jul 15 11:24:54 2002 +0200
+++ b/FixedPoint.st	Mon Jul 15 11:28:10 2002 +0200
@@ -212,7 +212,7 @@
         fractionPart := 0.
         scale := 1.
     ] ifFalse:[
-        fractionStream := WriteStream on:(String new: 10).
+        fractionStream := ReadWriteStream on:(String new: 10).
         [
             char := aStream next.
             char ~~ nil and:[char isDigit]
@@ -220,8 +220,9 @@
             fractionStream nextPut:char
         ].
 
-        scale := fractionStream contents size.
-        fractionPart := Number readFromString:(fractionStream contents) onError:exceptionBlock.
+        scale := fractionStream positionStartingAt0.
+        fractionStream reset.
+        fractionPart := Number readFrom:fractionStream.
     ].
 
     ^ self basicNew 
@@ -233,6 +234,9 @@
      FixedPoint readFrom:'-123.456' 
      FixedPoint readFrom:'123' 
      FixedPoint readFrom:'-123' 
+     FixedPoint readFrom:'-123.abcd' onError:[47.5] 
+     FixedPoint readFrom:'-1a.bcd' onError:[47.5] 
+     FixedPoint readFrom:'foot' onError:['bad fixedpoint'] 
     "
 
     "Created: / 25.10.1997 / 15:28:59 / cg"
@@ -913,5 +917,5 @@
 !FixedPoint class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/FixedPoint.st,v 1.14 2002-06-11 21:41:35 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/FixedPoint.st,v 1.15 2002-07-15 09:28:10 stefan Exp $'
 ! !