diff options
| Commit | 874caedf914eca536fb3106ff0800cb2f4fa78de (patch) | |
|---|---|---|
| Author | 2022-05-29 13:24:48 +0300 | |
| Committer | 2022-05-29 13:24:48 +0300 | |
| Files | 19b709b69cc9491e94c72f806c85f37c54a9c793 /src | |
| FMI-OOP-P2_Tables-874caedf914eca536fb3106ff0800cb2f4fa78de.tar FMI-OOP-P2_Tables-874caedf914eca536fb3106ff0800cb2f4fa78de.tar.gz FMI-OOP-P2_Tables-874caedf914eca536fb3106ff0800cb2f4fa78de.zip | ||
| Parent | 09fe991160bf0c4ed66b92af1870fced1ab293de (diff) | |
Autocommit at 29.05.2022 @ 13:24
1 files changed, 5 insertions, 1 deletions
| -rw-r--r-- | src/Generic/String/String.cpp | 6 |
diff --git a/src/Generic/String/String.cpp b/src/Generic/String/String.cpp index 5bc17b4..20f01fe 100644 --- a/src/Generic/String/String.cpp +++ b/src/Generic/String/String.cpp @@ -96,7 +96,11 @@ String& String::operator+=(double number) { *this += "-"; number *= -1; } - number += 1.0 / (DOUBLE_PRECISION * 10); // bump up the number, in cases it becomes something like 8.59999999999... + const double FRAC_PREC = 1.0 / DOUBLE_PRECISION; + number += FRAC_PREC * 0.1; // bump up the number, in cases it becomes something like 8.59999999999... + double decimal = number - (unsigned)number; + for (unsigned i = 10; i < DOUBLE_PRECISION && (decimal - (unsigned)decimal) > 1.0 / DOUBLE_PRECISION; i += 10) + decimal *= 10; return ((*this += (unsigned)number) += ".") += (unsigned)((number - (unsigned)number) * DOUBLE_PRECISION); } |
