Monte Goulding's day off? ;-) mergJSON - Documented Bug or Feature?
Mark Waddingham
mark at livecode.com
Wed Jun 29 08:39:46 EDT 2016
On 2016-06-29 14:21, Mark Waddingham wrote:
> On 2016-06-29 13:22, Lagi Pittas wrote:
>> Can someone please explain the logic that says that a textual
>> representation of information (CSV, XML a text file even) is
>> translated to
>> a IEEE number for us to round as we see fit?
Apologies - you can ignore all that I wrote in my previous response - I
had forgotten that mergJSON is an old-style external so can only return
string values!
The C library it uses returns values in bools, ints, doubles and strings
(at the C level). However, to return this data to LC it has to format
all of these as strings (this is a limitation of the old externals
interface). Therefore, it renders numbers in a form where you will not
lose any information - i.e. with 16 decimal places. This is the best way
to ensure you can then round them to a precision of your choice - hence
you see what you see.
I suppose there could be an option to choose a 'number of decimal
places' option passed to the library - however, you will then
potentially lose information in your numbers. Therefore, it is probably
better to do the rounding in script after loading the JSON file.
An alternative is to look at the JSON LCB library - this returns values
as actual numbers, booleans and strings to LiveCode - which means that
the numbers (in particular) get converted to strings respecting the
numberFormat property currently in effect.
Warmest Regards,
Mark.
--
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps
More information about the use-livecode
mailing list