【发布时间】:2018-05-04 13:09:44
【问题描述】:
当我使用pow() 函数时,有时结果会差一。例如,这段代码产生 124,但我知道 5³ 应该是 125。
#include<stdio.h>
#include<math.h>
int main(){
int i = pow(5, 3);
printf("%d", i);
}
为什么结果不对?
【问题讨论】:
-
stackoverflow.com/questions/588004/… 对 int 使用 float pow() 很难预测。
-
在您的程序中实现
pow的一个版本以使用积分输入。这将防止使用浮点数学的问题。 -
看起来是学习如何使用调试器的绝佳机会。
-
如果程序是 C 语言,请不要标记 C++,因为它不相关。
-
@JesperJuhl:我怀疑调试器在这里会有很大帮助。他已经确定了问题的位置,而且它是一个标准库函数,其代码甚至可能不可用(即使它可能也无济于事)。
标签: c math pow calculation