ARDUINOJSON_USE_DOUBLE
Description
ARDUINOJSON_USE_DOUBLE determines the type used to store floating point values in JsonVariant:
The default value is 1.
Setting it to 0 doesn’t reduce memory consumption but can slightly reduce code size.
The default value changed in ArduinoJson 6.19
Only 0 and 1 are valid. Any other value (like false or true) will produce a compilation error.
Several
.inoor.cppfiles?Be careful if several compilation units compose your program, i.e., if your project contains several
.inoor.cppfiles.You should define the same value of
ARDUINOJSON_USE_DOUBLEin each compilation unit; otherwise, the executable will be much bigger because it will contain two variants of the library.
Examples
Example with 32-bit precision
The following program uses 32-bit precision:
#define ARDUINOJSON_USE_DOUBLE 0
#include <ArduinoJson.h>
void example_float()
{
StaticJsonDocument<200> doc;
doc["pi"] = 3.14159265359;
serializeJson(doc, Serial);
}
It produces the following output:
{"pi":3.141593}
See online demo on wandbox.org.
Example with 64-bit precision
The following program uses 64-bit precision:
#define ARDUINOJSON_USE_DOUBLE 1
#include <ArduinoJson.h>
void example_double()
{
StaticJsonDocument<200> doc;
doc["pi"] = 3.14159265359;
serializeJson(doc, Serial);
}
It produces the following output:
{"pi":3.141592654}
See online demo on wandbox.org.