Description
https://github.com/couchbase/couchbase-lite-core/issues/849
Not sure that couchbaselabs/fleece is monitoring for new issues,
so reporting problem here.
I have problem with couchbase-lite-core,
I save document with field: 138.17 and after that I read it back from database,
I got field: 138.0, 0.17 is missed.
After debugging I find out out that after calling of c4db_encodeJSON .0.17 is disapear.
This is because of JSONConverter::pop use strtod which locale depended.
I debug this issue on machine where decimal point character from locale is ,.
So strtod got "138.17" as input and give 138.0 as output, because of decimal point character in JSON is . by specification, while strtod expects ,.
So it would be great if couchbase-lite-core doesn't depend on global variable (current locale) which user can change via environment variable in any moment, for example via LC_NUMERIC=XYZ on Linux.