Number.st
changeset 11097 5e4961639e41
parent 11096 19d6c993e67f
child 11098 bfc609a33e11
equal deleted inserted replaced
11096:19d6c993e67f 11097:5e4961639e41
  1187      thousandsSeparator is locale specific and is usually a single quote ('), a comma or period."
  1187      thousandsSeparator is locale specific and is usually a single quote ('), a comma or period."
  1188 
  1188 
  1189     self > 999 ifTrue:[
  1189     self > 999 ifTrue:[
  1190         (self // 1000) printOn:aStream thousandsSeparator:thousandsSeparator.
  1190         (self // 1000) printOn:aStream thousandsSeparator:thousandsSeparator.
  1191         thousandsSeparator printOn:aStream.
  1191         thousandsSeparator printOn:aStream.
  1192         (self truncated \\ 1000) printOn:aStream leftPaddedTo:3 with:$0.
  1192         (self \\ 1000) printOn:aStream leftPaddedTo:3 with:$0.
  1193         ^ self.
  1193         ^ self.
  1194     ].
  1194     ].
  1195     self printOn:aStream.
  1195     self printOn:aStream.
  1196 
  1196 
  1197     "
  1197     "
  1198      1000000 printOn:Transcript thousandsSeparator:$'
  1198      swiss style:
  1199      12345678 printOn:Transcript thousandsSeparator:$'
  1199      1000000 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
  1200      1234567 printOn:Transcript thousandsSeparator:$'
  1200      12345678 printOn:Transcript thousandsSeparator:$'.     Transcript cr.  
  1201      123456 printOn:Transcript thousandsSeparator:$'
  1201      1234567 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
  1202      12345 printOn:Transcript thousandsSeparator:$'
  1202      123456 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
  1203      1234 printOn:Transcript thousandsSeparator:$'
  1203      12345 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
  1204      123 printOn:Transcript thousandsSeparator:$'
  1204      1234 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
       
  1205      123 printOn:Transcript thousandsSeparator:$'.     Transcript cr.
       
  1206 
       
  1207      us style:
       
  1208      1000000 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
       
  1209      12345678 printOn:Transcript thousandsSeparator:$,.     Transcript cr.  
       
  1210      1234567 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
       
  1211      123456 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
       
  1212      12345 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
       
  1213      1234 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
       
  1214      123 printOn:Transcript thousandsSeparator:$,.     Transcript cr.
       
  1215 
       
  1216      german (european ?) style
       
  1217      1000000 printOn:Transcript thousandsSeparator:$..     Transcript cr.
       
  1218      12345678 printOn:Transcript thousandsSeparator:$..     Transcript cr.  
       
  1219      1234567 printOn:Transcript thousandsSeparator:$..     Transcript cr.
       
  1220      123456 printOn:Transcript thousandsSeparator:$..     Transcript cr.
       
  1221      12345 printOn:Transcript thousandsSeparator:$..     Transcript cr.
       
  1222      1234 printOn:Transcript thousandsSeparator:$..     Transcript cr.
       
  1223      123 printOn:Transcript thousandsSeparator:$..     Transcript cr.
  1205     "
  1224     "
  1206 !
  1225 !
  1207 
  1226 
  1208 printStringRadix:radix
  1227 printStringRadix:radix
  1209     self subclassResponsibility
  1228     self subclassResponsibility
  1210 !
  1229 !
  1211 
  1230 
  1212 printStringWithThousandsSeparator
  1231 printStringWithThousandsSeparator
  1213     "print the receiver as business number with thousands separator to aStream.
  1232     "print the receiver as swiss business number with thousands separator to aStream.
  1214      Caveat: Should use the separator from the locale here"
  1233      Caveat: Should use the separator from the locale here"
  1215 
  1234 
  1216     ^ String streamContents:[:s| self printOn:s thousandsSeparator:$'].
  1235     ^ self printStringWithThousandsSeparator:$'.
  1217 
  1236 
  1218     "
  1237     "
  1219      1000000 printStringWithThousandsSeparator
  1238      1000000 printStringWithThousandsSeparator
  1220      12345678 printStringWithThousandsSeparator
  1239      12345678 printStringWithThousandsSeparator
  1221      1234567 printStringWithThousandsSeparator
  1240      1234567 printStringWithThousandsSeparator
  1222      123456 printStringWithThousandsSeparator
  1241      123456 printStringWithThousandsSeparator
  1223      12345 printStringWithThousandsSeparator
  1242      12345 printStringWithThousandsSeparator
  1224      1234 printStringWithThousandsSeparator
  1243      1234 printStringWithThousandsSeparator
  1225      123 printStringWithThousandsSeparator
  1244      123 printStringWithThousandsSeparator
       
  1245 
       
  1246      1000000 asFixedPoint printStringWithThousandsSeparator
       
  1247      12345678 asFixedPoint printStringWithThousandsSeparator
       
  1248      1234567 asFixedPoint printStringWithThousandsSeparator  
       
  1249      123456 asFixedPoint printStringWithThousandsSeparator
       
  1250      12345 asFixedPoint printStringWithThousandsSeparator 
       
  1251      1234 asFixedPoint printStringWithThousandsSeparator 
       
  1252      123 asFixedPoint printStringWithThousandsSeparator
       
  1253     "
       
  1254 !
       
  1255 
       
  1256 printStringWithThousandsSeparator:thousandsSeparator
       
  1257     "print the receiver as business number with a thousands separator to aStream.
       
  1258      Notice:
       
  1259         americans use comma
       
  1260         germans (europeans ?) use a dot
       
  1261         swiss people (business people ?) use a single quote
       
  1262 
       
  1263      Caveat: Should use the separator from the locale here"
       
  1264 
       
  1265     ^ String streamContents:[:s | self printOn:s thousandsSeparator:thousandsSeparator].
       
  1266 
       
  1267     "
       
  1268      Transcript showCR:(1000000 printStringWithThousandsSeparator:$').
       
  1269      Transcript showCR:(12345678 printStringWithThousandsSeparator:$').
       
  1270      Transcript showCR:(1234567 printStringWithThousandsSeparator:$').
       
  1271      Transcript showCR:(123456 printStringWithThousandsSeparator:$').
       
  1272      Transcript showCR:(12345 printStringWithThousandsSeparator:$').
       
  1273      Transcript showCR:(1234 printStringWithThousandsSeparator:$').
       
  1274      Transcript showCR:(123 printStringWithThousandsSeparator:$').
       
  1275 
       
  1276      Transcript showCR:(1000000 printStringWithThousandsSeparator:$,).
       
  1277      Transcript showCR:(12345678 printStringWithThousandsSeparator:$,).
       
  1278      Transcript showCR:(1234567 printStringWithThousandsSeparator:$,).
       
  1279      Transcript showCR:(123456 printStringWithThousandsSeparator:$,).
       
  1280      Transcript showCR:(12345 printStringWithThousandsSeparator:$,).
       
  1281      Transcript showCR:(1234 printStringWithThousandsSeparator:$,).
       
  1282      Transcript showCR:(123 printStringWithThousandsSeparator:$,).
       
  1283 
       
  1284      Transcript showCR:((1000000 asFixedPoint:2) printStringWithThousandsSeparator:$,).
       
  1285      Transcript showCR:((12345678 asFixedPoint:2) printStringWithThousandsSeparator:$,).
       
  1286      Transcript showCR:((1234567 asFixedPoint:2) printStringWithThousandsSeparator:$,).  
       
  1287      Transcript showCR:((123456 asFixedPoint:2) printStringWithThousandsSeparator:$,).
       
  1288      Transcript showCR:((12345 asFixedPoint:2) printStringWithThousandsSeparator:$,). 
       
  1289      Transcript showCR:((1234 asFixedPoint:2) printStringWithThousandsSeparator:$,). 
       
  1290      Transcript showCR:((123 asFixedPoint:2) printStringWithThousandsSeparator:$,).
  1226     "
  1291     "
  1227 !
  1292 !
  1228 
  1293 
  1229 storeOn:aStream
  1294 storeOn:aStream
  1230     "append a string for storing the receiver onto the argument,
  1295     "append a string for storing the receiver onto the argument,
  2048 ! !
  2113 ! !
  2049 
  2114 
  2050 !Number class methodsFor:'documentation'!
  2115 !Number class methodsFor:'documentation'!
  2051 
  2116 
  2052 version
  2117 version
  2053     ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.113 2008-07-24 09:58:24 cg Exp $'
  2118     ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.114 2008-07-24 10:07:15 cg Exp $'
  2054 ! !
  2119 ! !