Fraction.st
changeset 2853 0647da37ba9a
parent 2792 2ae1f2e3d11f
child 2894 344aec8ba014
--- a/Fraction.st	Mon Aug 11 16:06:32 1997 +0200
+++ b/Fraction.st	Mon Aug 11 19:15:58 1997 +0200
@@ -566,8 +566,8 @@
 
     den := denominator.
     den < 0 ifTrue:[
-	numerator := numerator negated.
-	den := denominator := den negated.
+        numerator := numerator negated.
+        den := denominator := den negated.
     ].
 
     den == 1 ifTrue:[^ numerator].
@@ -576,9 +576,13 @@
 
     gcd := numerator gcd:den.
     (gcd ~~ 1) ifTrue:[
-	numerator := numerator // gcd.
-	denominator := den // gcd.
-        (denominator == 1) ifTrue:[^ numerator].
+        numerator := numerator // gcd.
+        denominator := den := den // gcd.
+        den < 0 ifTrue:[
+            numerator := numerator negated.
+            den := denominator := den negated.
+        ].
+        (den == 1) ifTrue:[^ numerator].
     ].
     ^ self
 !
@@ -656,6 +660,6 @@
 !Fraction class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.39 1997-07-28 17:11:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.40 1997-08-11 17:15:58 ca Exp $'
 ! !
 Fraction initialize!