I didn't finish a broader point but when considering this: Or, slightly different, the bytes in a JSON serialized number are chosen such that they refer to a single specific value that a double can represent.
The important point to understand is that we're mapping from one infinite set onto a finite set. An easy way to see this is by reflecting on this: 1.0 == 1.00 == 1.000 = 1.(infinite zeroes) Obviously a computer can't hold infinite bytes (as much as my sister-in-law wishes for those pictures of my nephew) so we have to decimate our infinitely sized set to a finite set that can be represented concisely. On Tue, Feb 19, 2013 at 9:01 PM, Jens Alfke <[email protected]> wrote: > > On Feb 19, 2013, at 12:46 PM, Luca Morandini <[email protected]> wrote: > >> Well, there it goes my academic track paper on CouchDB and GeoCouch for >> FOSS4G '13 :( > > Are roundoff errors on the order of one part in 2^56 really a deal-breaker > for your application? I mean, “17.300000000000000711” does _look_ ugly > compared to “17.3”, but the difference is completely negligible for most > purposes. Have you worked out how many significant figures of accuracy you > need, and are the results correct to within those significant figures? > > —Jens
