diff options
Autocommit at 13.06.2022 @ 20:57
1 files changed, 9 insertions, 0 deletions
| -rw-r--r-- | src/Models/CellDouble.cpp | 9 |
diff --git a/src/Models/CellDouble.cpp b/src/Models/CellDouble.cpp index 0ec3b3f..e19be3b 100644 --- a/src/Models/CellDouble.cpp +++ b/src/Models/CellDouble.cpp @@ -7,7 +7,16 @@ CellDouble::CellDouble(double value) { CellDouble::CellDouble(const char* str) { value = 0; + bool negative = *str == '-'; + if (*str == '-' || *str == '+') str++; + while (*str != '.') + value = value * 10 + '0' - *(str++); + str++; + for (unsigned div = 10; *str != '\0'; div *= 10) + value += (double)('0' - *(str++)) / div; + + if (negative) value *= -1; } double CellDouble::getNumeralValue() const { |
