I'm finally back at building my functions, which is what I'm doing before making the actual BPML language. In Part 3 - Math, I want to make some logarithm functions.
I never knew what logarithm functions were at the very beginning, but as I went deeper, I learned it and made this:
float log_num(int num) {
int mult;
float result = 0;
for (int i = 0; ; i++) {
mult = 10 ^ i;
if (mult >= num) {
result = i;
break;
}
}
return result;
}
log_num
only supports int
and float
and double
will have their separate ones.
Now I got 2 problems with this function:
- When I tried to run it and use
100
as the number in the function, the result should've been2.00
, but it gave me1.00
. - Since the value to be returned is a
float
, I want the function to actually give me different values if it is not a power of 10. An example of it is2 = 0.30102999566398119521373889472449
.
Q: How do I fix problem 1 and how do I make the function work as how I explained in problem 2?
I want to make the function from scratch and not relying on other functions.