我终于重新开始构建我的函数,这是我在制作实际的 BPML 语言之前正在做的事情。在第 3 部分 - 数学中,我想做一些对数函数。
一开始我不知道对数函数是什么,但随着我的深入,我学会了它并做了这个:
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只支持int并且将float有double它们单独的。
现在我遇到了这个函数的两个问题:
- 当我尝试运行它并
100用作函数中的数字时,结果应该是2.00,但它给了我1.00. - 由于要返回的值是 a
float,如果它不是 10 的幂,我希望函数实际上给我不同的值。它的一个例子是2 = 0.30102999566398119521373889472449。
问:如何解决问题 1 以及如何使功能按照问题 2 中的说明工作?
我想从头开始制作这个功能,而不是依赖其他功能。