2014-02-26 23:08 GMT+01:00 Nicolas Cellier < nicolas.cellier.aka.n...@gmail.com>:
> 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... > > super easy is just redefine: ExtendedNumberParser>>exponentLetters ^'edqEDQ' and then Float readFrom: '1.0000000000000000E-02' works as expected, that is in Squeak at least... > 2014-02-26 22:38 GMT+01:00 Mariano Martinez Peck <marianop...@gmail.com>: > > 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 >> > >