diff --git a/include/ArduinoJson/JsonVariant.hpp b/include/ArduinoJson/JsonVariant.hpp index f4b41a77..acb2373a 100644 --- a/include/ArduinoJson/JsonVariant.hpp +++ b/include/ArduinoJson/JsonVariant.hpp @@ -59,15 +59,15 @@ class JsonVariant : public JsonPrintable { operator bool() const; operator double() const; - operator float() const { return as(); } - operator signed char() const { return as(); } - operator signed int() const { return as(); } + operator float() const { return static_cast(as()); } + operator signed char() const { return static_cast(as()); } + operator signed int() const { return static_cast(as()); } operator signed long() const; - operator signed short() const { return as(); } - operator unsigned char() const { return as(); } - operator unsigned int() const { return as(); } - operator unsigned long() const { return as(); } - operator unsigned short() const { return as(); } + operator signed short() const { return static_cast(as()); } + operator unsigned char() const { return static_cast(as()); } + operator unsigned int() const { return static_cast(as()); } + operator unsigned long() const { return static_cast(as()); } + operator unsigned short() const { return static_cast(as()); } operator const char *() const; operator JsonArray &() const; operator JsonObject &() const; diff --git a/src/Internals/JsonParser.cpp b/src/Internals/JsonParser.cpp index d38c14c7..f2e6da02 100644 --- a/src/Internals/JsonParser.cpp +++ b/src/Internals/JsonParser.cpp @@ -117,7 +117,7 @@ void JsonParser::parseNumberTo(JsonVariant &destination) { if (*endOfLong == '.') { // stopped on a decimal separator double doubleValue = strtod(_ptr, &_ptr); - uint8_t decimals = _ptr - endOfLong - 1; + uint8_t decimals = static_cast(_ptr - endOfLong - 1); destination.set(doubleValue, decimals); } else { _ptr = endOfLong;