Number.st
changeset 11097 5e4961639e41
parent 11096 19d6c993e67f
child 11098 bfc609a33e11
--- a/Number.st	Thu Jul 24 11:58:24 2008 +0200
+++ b/Number.st	Thu Jul 24 12:07:15 2008 +0200
@@ -1189,19 +1189,38 @@
     self > 999 ifTrue:[
         (self // 1000) printOn:aStream thousandsSeparator:thousandsSeparator.
         thousandsSeparator printOn:aStream.
-        (self truncated \\ 1000) printOn:aStream leftPaddedTo:3 with:$0.
+        (self \\ 1000) printOn:aStream leftPaddedTo:3 with:$0.
         ^ self.
     ].
     self printOn:aStream.
 
     "
-     1000000 printOn:Transcript thousandsSeparator:$'
-     12345678 printOn:Transcript thousandsSeparator:$'
-     1234567 printOn:Transcript thousandsSeparator:$'
-     123456 printOn:Transcript thousandsSeparator:$'
-     12345 printOn:Transcript thousandsSeparator:$'
-     1234 printOn:Transcript thousandsSeparator:$'
-     123 printOn:Transcript thousandsSeparator:$'
+     swiss style:
+     1000000 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
+     12345678 printOn:Transcript thousandsSeparator:$'.     Transcript cr.  
+     1234567 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
+     123456 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
+     12345 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
+     1234 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
+     123 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
+
+     us style:
+     1000000 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
+     12345678 printOn:Transcript thousandsSeparator:$,.     Transcript cr.  
+     1234567 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
+     123456 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
+     12345 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
+     1234 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
+     123 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
+
+     german (european ?) style
+     1000000 printOn:Transcript thousandsSeparator:$..     Transcript cr.
+     12345678 printOn:Transcript thousandsSeparator:$..     Transcript cr.  
+     1234567 printOn:Transcript thousandsSeparator:$..     Transcript cr.
+     123456 printOn:Transcript thousandsSeparator:$..     Transcript cr.
+     12345 printOn:Transcript thousandsSeparator:$..     Transcript cr.
+     1234 printOn:Transcript thousandsSeparator:$..     Transcript cr.
+     123 printOn:Transcript thousandsSeparator:$..     Transcript cr.
     "
 !
 
@@ -1210,10 +1229,10 @@
 !
 
 printStringWithThousandsSeparator
-    "print the receiver as business number with thousands separator to aStream.
+    "print the receiver as swiss business number with thousands separator to aStream.
      Caveat: Should use the separator from the locale here"
 
-    ^ String streamContents:[:s| self printOn:s thousandsSeparator:$'].
+    ^ self printStringWithThousandsSeparator:$'.
 
     "
      1000000 printStringWithThousandsSeparator
@@ -1223,6 +1242,52 @@
      12345 printStringWithThousandsSeparator
      1234 printStringWithThousandsSeparator
      123 printStringWithThousandsSeparator
+
+     1000000 asFixedPoint printStringWithThousandsSeparator
+     12345678 asFixedPoint printStringWithThousandsSeparator
+     1234567 asFixedPoint printStringWithThousandsSeparator  
+     123456 asFixedPoint printStringWithThousandsSeparator
+     12345 asFixedPoint printStringWithThousandsSeparator 
+     1234 asFixedPoint printStringWithThousandsSeparator 
+     123 asFixedPoint printStringWithThousandsSeparator
+    "
+!
+
+printStringWithThousandsSeparator:thousandsSeparator
+    "print the receiver as business number with a thousands separator to aStream.
+     Notice:
+        americans use comma
+        germans (europeans ?) use a dot
+        swiss people (business people ?) use a single quote
+
+     Caveat: Should use the separator from the locale here"
+
+    ^ String streamContents:[:s | self printOn:s thousandsSeparator:thousandsSeparator].
+
+    "
+     Transcript showCR:(1000000 printStringWithThousandsSeparator:$').
+     Transcript showCR:(12345678 printStringWithThousandsSeparator:$').
+     Transcript showCR:(1234567 printStringWithThousandsSeparator:$').
+     Transcript showCR:(123456 printStringWithThousandsSeparator:$').
+     Transcript showCR:(12345 printStringWithThousandsSeparator:$').
+     Transcript showCR:(1234 printStringWithThousandsSeparator:$').
+     Transcript showCR:(123 printStringWithThousandsSeparator:$').
+
+     Transcript showCR:(1000000 printStringWithThousandsSeparator:$,).
+     Transcript showCR:(12345678 printStringWithThousandsSeparator:$,).
+     Transcript showCR:(1234567 printStringWithThousandsSeparator:$,).
+     Transcript showCR:(123456 printStringWithThousandsSeparator:$,).
+     Transcript showCR:(12345 printStringWithThousandsSeparator:$,).
+     Transcript showCR:(1234 printStringWithThousandsSeparator:$,).
+     Transcript showCR:(123 printStringWithThousandsSeparator:$,).
+
+     Transcript showCR:((1000000 asFixedPoint:2) printStringWithThousandsSeparator:$,).
+     Transcript showCR:((12345678 asFixedPoint:2) printStringWithThousandsSeparator:$,).
+     Transcript showCR:((1234567 asFixedPoint:2) printStringWithThousandsSeparator:$,).  
+     Transcript showCR:((123456 asFixedPoint:2) printStringWithThousandsSeparator:$,).
+     Transcript showCR:((12345 asFixedPoint:2) printStringWithThousandsSeparator:$,). 
+     Transcript showCR:((1234 asFixedPoint:2) printStringWithThousandsSeparator:$,). 
+     Transcript showCR:((123 asFixedPoint:2) printStringWithThousandsSeparator:$,).
     "
 !
 
@@ -2050,5 +2115,5 @@
 !Number class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.113 2008-07-24 09:58:24 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.114 2008-07-24 10:07:15 cg Exp $'
 ! !