【发布时间】:2015-08-15 15:30:52
【问题描述】:
以下代码返回 99 作为输出。
#include<iostream>
#include <math.h>
using namespace std;
int Solve(int a)
{
return (pow(a,2));
}
int main()
{
int a=10;
cout<<Solve(a)<<endl;
return 0;
}
我不知道为什么会发生这种情况,而且,它对 5 和 25 也是如此,所以它与 5 的倍数有关。
是电脑坏了还是什么:D
【问题讨论】:
-
您尝试过
std::pow设计的任何浮点类型吗? -
这取决于您的系统。对我来说,它返回 100。可能是在您的系统上它返回 99.99999998,当转换为 int 时将变成 99。
标签: c++ floating-point rounding floating-accuracy c++-standard-library