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
sisterinlaw 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 <jens@couchbase.com> wrote:
>
> On Feb 19, 2013, at 12:46 PM, Luca Morandini <lmorandini@ieee.org> 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 dealbreaker 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
