关于一个简单的函数返回值的精度问题
本帖最后由 deng529828 于 2013-02-08 11:41:31 编辑
在写代码的时候碰到了这样一个问题。通过代码来看吧。
代码1:
#include<stdio.h>
#include<math.h>
int main()
{
int t;
int a = 10,i = 2;
t = pow(a,i);
printf("%d",t);
}
代码2:
#include<stdio.h>
#include<math.h>
int main()
{
int t;
// int a = 10,i = 2;
t = pow(10,2);
printf("%d",t);
}
第一个输出99,第二个输出100,这是为什么呢?虽然pow是float型,但也不至于出现这种错误吧?
------解决方案--------------------float t;
printf("%
f",t); // 改成浮点输出就明白了。你的数被截断了
------解决方案--------------------我的事VC6.0,两个都是输出100.不知道是不是编译器的bug