Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models / CellDouble.cpp
diff options
context:
space:
mode:
1 files changed, 9 insertions, 0 deletions
-rw-r--r--src/Models/CellDouble.cpp9
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 {