141 return compare(*
this, other) < 0;
146 return compare(*
this, other) > 0;
175 parse(value, length, num);
211 auto newMantissa = (
mantissa + 5) / 10;
254 if(
mantissa == std::numeric_limits<double>::infinity()) {
257 if(
mantissa == -std::numeric_limits<double>::infinity()) {
269 while(mantissa < -0x7fffffff || mantissa > 0x7fffffff) {
291 while(value > 0xffffffffll) {
299 static_assert(
sizeof(
number_t) == 4,
"Bad number_t size");
376 Number(
const char* value,
unsigned length) : number(
number_t::parse(value, length))
390 return number < other.number;
395 return number > other.number;
400 return number == other;
405 return number != other;
#define abs(x)
< sprintf()
Definition: ArduinoCompat.h:22
String toString(number_t number)
Definition: Number.h:454
ConfigDB::const_number_t const_number_t
Definition: Number.h:452
ConfigDB::number_t number_t
Definition: Number.h:451
Base-10 floating-point storage format.
Definition: Number.h:343
Number(const char *value)
Definition: Number.h:380
double asFloat() const
Definition: Number.h:419
int compare(const Number &other) const
Definition: Number.h:408
constexpr Number(const Number &number)=default
bool operator<(const Number &other) const
Definition: Number.h:388
Number(const char *value, unsigned length)
Parse a number from a string.
Definition: Number.h:376
constexpr Number(const number_t &number)
Definition: Number.h:347
constexpr Number(int64_t value)
Definition: Number.h:361
bool operator>(const Number &other) const
Definition: Number.h:393
String toString() const
Definition: Number.h:429
constexpr Number(int value)
Definition: Number.h:365
size_t printTo(Print &p) const
Definition: Number.h:413
Number(const String &str)
Definition: Number.h:384
bool operator!=(const number_t &other) const
Definition: Number.h:403
int64_t asInt64() const
Definition: Number.h:424
constexpr Number(double value)
Definition: Number.h:357
constexpr Number(unsigned int value)
Definition: Number.h:369
bool operator==(const number_t &other) const
Definition: Number.h:398
constexpr Number(const const_number_t &number)
Definition: Number.h:351
Provides formatted output to stream.
Definition: Print.h:37
size_t print(char c)
Prints a single character to output stream.
Definition: Print.h:103
The String class.
Definition: WString.h:133
Compile-time constant number.
Definition: Number.h:319
constexpr const_number_t(const number_t &value)
Definition: Number.h:322
constexpr const_number_t(double value)
Computer number from a compile-time constant value.
Definition: Number.h:329
Basic definition of base-10 floating point value.
Definition: Number.h:91
static constexpr const number_t lowest()
Most negative value.
Definition: Number.h:119
static number_t parse(const char *value, unsigned length)
Definition: Number.h:172
static constexpr const number_t min()
Smallest positive value.
Definition: Number.h:103
static constexpr number_t normalise(int mantissa, int exponent)
Definition: Number.h:278
static constexpr number_t normalise(unsigned mantissa, int exponent, bool isNeg)
Produce a normalised number_t from component values.
Definition: Number.h:196
static constexpr number_t normalise(double mantissa)
Definition: Number.h:248
bool sign() const
Definition: Number.h:134
static int compare(number_t num1, number_t num2)
size_t printTo(Print &p) const
Definition: Number.h:153
bool operator<(const number_t &other) const
Definition: Number.h:139
static constexpr unsigned minBufferSize
Definition: Number.h:98
static constexpr const number_t max()
Largest positive value.
Definition: Number.h:111
static const char * format(char *buf, number_t number)
Convert number to string.
bool operator!=(const number_t &other) const
Definition: Number.h:129
static bool parse(const char *value, unsigned length, number_t &number)
static constexpr number_t normalise(int64_t value)
Definition: Number.h:283
bool operator>(const number_t &other) const
Definition: Number.h:144
static constexpr unsigned maxSignificantDigits
Definition: Number.h:97
static constexpr int maxExponent
Definition: Number.h:96
static int64_t asInt64(number_t number)
static constexpr unsigned maxMantissa
Definition: Number.h:95
int32_t mantissa
Definition: Number.h:92
bool operator==(const number_t &other) const
Definition: Number.h:124
static double asFloat(number_t number)
int32_t exponent
Definition: Number.h:93
#define str(s)
Definition: testrunner.h:124