summaryrefslogtreecommitdiff
path: root/src/utils/string.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-23 22:09:19 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-23 22:09:19 +0330
commitaf6a58bfad54dc9d3cb49d1efa1c90a5d094bcb1 (patch)
tree73d775c037d680446181a48ac4d17025c0974603 /src/utils/string.c
parent4a39184dfcf0af72e2a28ffed2e3b342202fcba1 (diff)
fix bugs in float types
Diffstat (limited to 'src/utils/string.c')
-rw-r--r--src/utils/string.c9
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;