diff --git a/src/ArduinoJson/Numbers/FloatParts.hpp b/src/ArduinoJson/Numbers/FloatParts.hpp index b9291ce1..214bc7a8 100644 --- a/src/ArduinoJson/Numbers/FloatParts.hpp +++ b/src/ArduinoJson/Numbers/FloatParts.hpp @@ -73,7 +73,7 @@ struct FloatParts { if (value > 0 && value <= ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD) { for (; index >= 0; index--) { - if (value < traits::negativeBinaryPowersOfTenPlusOne()[index]) { + if (value < traits::negativeBinaryPowersOfTen()[index] * 10) { value *= traits::positiveBinaryPowersOfTen()[index]; powersOf10 = int16_t(powersOf10 - bit); } diff --git a/src/ArduinoJson/Numbers/FloatTraits.hpp b/src/ArduinoJson/Numbers/FloatTraits.hpp index 6e1cd1bb..23abd7ff 100644 --- a/src/ArduinoJson/Numbers/FloatTraits.hpp +++ b/src/ArduinoJson/Numbers/FloatTraits.hpp @@ -63,23 +63,6 @@ struct FloatTraits { return pgm_ptr(reinterpret_cast(factors)); } - static pgm_ptr negativeBinaryPowersOfTenPlusOne() { - ARDUINOJSON_DEFINE_PROGMEM_ARRAY( // - uint64_t, factors, - { - 0x3FF0000000000000, // 1e0 - 0x3FB999999999999A, // 1e-1 - 0x3F50624DD2F1A9FC, // 1e-3 - 0x3E7AD7F29ABCAF48, // 1e-7 - 0x3CD203AF9EE75616, // 1e-15 - 0x398039D665896880, // 1e-31 - 0x32DA53FC9631D10D, // 1e-63 - 0x2591544581B7DEC2, // 1e-127 - 0x0AFE07B27DD78B14 // 1e-255 - }); - return pgm_ptr(reinterpret_cast(factors)); - } - static T nan() { return forge(0x7ff8000000000000); } @@ -156,19 +139,6 @@ struct FloatTraits { return pgm_ptr(reinterpret_cast(factors)); } - static pgm_ptr negativeBinaryPowersOfTenPlusOne() { - ARDUINOJSON_DEFINE_PROGMEM_ARRAY(uint32_t, factors, - { - 0x3f800000, // 1e0f - 0x3dcccccd, // 1e-1f - 0x3a83126f, // 1e-3f - 0x33d6bf95, // 1e-7f - 0x26901d7d, // 1e-15f - 0x0c01ceb3 // 1e-31f - }); - return pgm_ptr(reinterpret_cast(factors)); - } - static T forge(uint32_t bits) { return alias_cast(bits); }