我在一个简单的 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;
}
如果我用 75.21 75.22 运行上面的代码,它给了我 75.22,但如果我用 7.21 和 7.22 运行它,它给了我 7.21。这两个数字相差 0.01,所以我不明白为什么会这样?