diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-23 22:09:19 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-23 22:09:19 +0330 |
commit | af6a58bfad54dc9d3cb49d1efa1c90a5d094bcb1 (patch) | |
tree | 73d775c037d680446181a48ac4d17025c0974603 /src/utils/string.c | |
parent | 4a39184dfcf0af72e2a28ffed2e3b342202fcba1 (diff) |
fix bugs in float types
Diffstat (limited to 'src/utils/string.c')
-rw-r--r-- | src/utils/string.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/utils/string.c b/src/utils/string.c index ee8a354..17e27cd 100644 --- a/src/utils/string.c +++ b/src/utils/string.c @@ -3,6 +3,7 @@ #include "utils/type.h" #include <stdint.h> +#include <stdio.h> #include <string.h> size_t searchInStringArray(const char *array[], size_t array_size, @@ -34,8 +35,8 @@ u64 decimalToU64(char *str_begin, char *str_end, bool *success) { } f128 numberToFloat(char *str_begin, char *str_end, bool *success) { - f64 left = 0; - f64 right = 0; + f128 left = 0; + f128 right = 0; bool isPastPoint = false; while (str_begin < str_end) { @@ -46,12 +47,12 @@ f128 numberToFloat(char *str_begin, char *str_end, bool *success) { c = *str_begin++; } if (c >= '0' && c <= '9') { - if (isPastPoint) { + if (!isPastPoint) { left *= 10; left += c - '0'; } else { - right /= 10; right += c - '0'; + right /= 10; } } else if (c == '.' && !isPastPoint) { isPastPoint = true; |