please please please update to 1.4 because we improved a lottttttttt and even more :) On Aug 10, 2012, at 12:12 AM, Guy wrote:
> Cami, > Silly me 1.1.1. I should obviously be up to date. > > Thanks > > Guy > > On 10/08/2012, at 10:04 AM, Camillo Bruni wrote: > >> which version of Pharo/VM are you using? >> Cause in my latest 1.4 and latest 2.0 this seems to work... >> >> String streamContents: [ :s| -0.55s2 printOn: s ] "yields the expected >> '-0.55s2'" >> >> I remember Mariano once had a strange integer issue since he accidentally >> used once of >> is own compiled VMs which wasn't working as expected. >> >> >> best >> cami >> >> On 2012-08-09, at 23:53, Guy <[email protected]> wrote: >> >>> Team Pharo, >>> The printOn: method in ScaledDecimal returns a positive number string where >>> the number is >-1 and < 0. For example -0.55s2 returns a string '0.55s2'. >>> >>> I have made my own correction. >>> >>> This may help the one other person who is using ScaledDecimal as a proxy >>> for Currency but I have no idea what to do with this astounding discovery >>> nor whether it will help anyone nor indeed if it is very tidy code. >>> >>> Thanks >>> >>> Guy Bloomfield >>> >>> The current method starts with the string for the integer part 0 and then >>> the absolute value of the fraction: >>> >>> printOn: aStream >>> "Append an approximated representation of the receiver on aStream. >>> Use prescribed number of digits after decimal point (the scale) using a >>> rounding operation if not exact" >>> >>> | fractionPart | >>> scale = 0 >>> ifTrue: [self rounded printOn: aStream] >>> ifFalse: [self integerPart printOn: aStream. >>> aStream nextPut: $.. >>> fractionPart := (self abs fractionPart * (10 >>> raisedToInteger: scale)) rounded. >>> ..... >>> >>> My correction: >>> >>> printOn: aStream >>> "Append an approximated representation of the receiver on aStream. >>> Use prescribed number of digits after decimal point (the scale) using a >>> rounding operation if not exact" >>> >>> | fractionPart | >>> >>> self < 0 ifTrue: [ aStream nextPut: $- ]. >>> >>> scale = 0 >>> ifTrue: [self rounded printOn: aStream] >>> ifFalse: [self abs integerPart printOn: aStream. >>> aStream nextPut: $.. >>> fractionPart := (self abs fractionPart * (10 >>> raisedToInteger: scale)) rounded. >>> ..... >>> >>> >> > >
