➜ ~ node --version v0.8.20 ➜ ~ node > (17.0 + 0.3) .toPrecision(21) '17.3000000000000007105'
On 19 February 2013 20:46, Luca Morandini <[email protected]> wrote: > On 02/20/2013 01:42 AM, Volker Mische wrote: >> >> I think it does address indexes. Only the JavaScript engine will deal >> with the encoding/decoding. AFAIK SpiderMonkey/V8 doeas the right thing. > > > I did a quick check: > > > lmorandini@vaneyck: >node >> var n= {"n": 17.3}; > undefined >> console.log(n.n); > 17.3 >> 17.0 + 0.3 > 17.3 > Right! > > ...but: > function(doc) { > emit(doc._id, [17.3, 17.0 + 0.3]); > } > > lmorandini@vaneyck: >curl -X GET > http://localhost:5984/datastore/_design/main/_view/numbertest > {"total_rows":12,"offset":0,"rows":[ > {"id":"a0046a217ccabb616007fce0980008c6","key":"a0046a217ccabb616007fce0980008c6","value":[17.300000000000000711,17.300000000000000711]}, > ... > Wrong! > > Therefore, I would argue this is not a feature intrinsic to JSON or > JavaScript. > > I appreciate suggestions from other members of the list, but changing > numbers to integers or multiplying them (essentially the same suggestion) is > not an option, since I have little control over input data, and it will kill > performance too (I deal mainly with geo-spatial data, hence heaps of > numbers in arrays of arrays). > > Well, there it goes my academic track paper on CouchDB and GeoCouch for > FOSS4G '13 :( > > > Regards, > > Luca Morandini > Data Architect - AURIN project > Department of Computing and Information Systems > University of Melbourne > Tel. +61 03 903 58 380 > Skype: lmorandini >
