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.
>>>                     .....
>>> 
>>> 
>> 
> 
> 


Reply via email to