--- a/Number.st Thu Jul 24 11:58:22 2008 +0200
+++ b/Number.st Thu Jul 24 11:58:24 2008 +0200
@@ -1182,10 +1182,50 @@
s printOn: aStream leftPaddedTo:size with: padCharacter
!
+printOn:aStream thousandsSeparator:thousandsSeparator
+ "print the receiver as business number with thousands separator to aStream.
+ thousandsSeparator is locale specific and is usually a single quote ('), a comma or period."
+
+ self > 999 ifTrue:[
+ (self // 1000) printOn:aStream thousandsSeparator:thousandsSeparator.
+ thousandsSeparator printOn:aStream.
+ (self truncated \\ 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:$'
+ "
+!
+
printStringRadix:radix
self subclassResponsibility
!
+printStringWithThousandsSeparator
+ "print the receiver as business number with thousands separator to aStream.
+ Caveat: Should use the separator from the locale here"
+
+ ^ String streamContents:[:s| self printOn:s thousandsSeparator:$'].
+
+ "
+ 1000000 printStringWithThousandsSeparator
+ 12345678 printStringWithThousandsSeparator
+ 1234567 printStringWithThousandsSeparator
+ 123456 printStringWithThousandsSeparator
+ 12345 printStringWithThousandsSeparator
+ 1234 printStringWithThousandsSeparator
+ 123 printStringWithThousandsSeparator
+ "
+!
+
storeOn:aStream
"append a string for storing the receiver onto the argument,
aStream - since numbers are literals,they store as they print."
@@ -2010,5 +2050,5 @@
!Number class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.112 2008-05-09 10:51:58 mb Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.113 2008-07-24 09:58:24 cg Exp $'
! !