That's exactly for this kind of reasons that I developped an
ExtendedNumberParser connected to Number class>>readFrom:, to allow a
variety of formats used in the rest of the world.

It would have been easy to allow upper letter exponents in this parser, but
the class was considered superfluous and removed from Pharo 3.0...


2014-02-26 22:38 GMT+01:00 Mariano Martinez Peck <[email protected]>:

> Hi guys,
>
> When I export SmallDoubles with SIXX in GemStone it generates something
> like this:
>
> <sixx.object sixx.id="15" sixx.name="close" sixx.type="SmallDouble"
> >1.0000000000000000E-02</sixx.object>
>
> This is because "0.01 asString" -> '1.0000000000000000E-02'
>
> Then I want to load this in Pharo. So first problem is that of course
> SmallDouble doesn't exist. So I did:
>
> aSixxShapeChangeStream shapeChangers at: #SmallDouble put: Float.
> But then, SIXX use Float >> readFrom: aStream
> "Answer a new Float as described on the stream, aStream." ^(super
> readFrom: aStream) asFloat
>
>
> So, of course " Float readFrom: '1.0000000000000000E-02'  "  ->  1.0
>
> So my 0.01 in gemstone become 1.0 in Pharo....
>
> Am I doing something wrong or this is expected? What is the best
> workaround?
>
> In GemStone I could print the SmallDouble in the XML with a method like
>
> Float >> xmlRepresentation
> ^ String streamContents:
> [:strm | self printOn: strm base: 10]
>
> Is this the correct approach? If true, I guess I should define:
>
> Float >> sixxContentOn: aStream indent: level context: dictionary aStream
> nextPutAll: self xmlRepresentation
>
>
> Thoughts?
>
> Thanks in advance,
>
> --
> Mariano
> http://marianopeck.wordpress.com
>

Reply via email to