Pal*_*han 0 c++ floating-point
我在一个简单的main中有以下源代码:
int main(int argc, char** argv)
{
double x = atof(argv[1]);
double y = atof(argv[2]);
double res = x + std::floor((y - x) * .5 * 100 + .5)*0.01;
std::cout << res << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
如果我用75.21 75.22运行上面它给了我75.22但如果我用7.21和7.22运行它它给了我7.21.这两个数字相差0.01,所以我不明白为什么会这样?